docs.html revision b8317e2bbbf1a23d4fcd0c4b0e29e37254badc49
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
350            <li><a href="#static_android.lens.facing">android.lens.facing</a></li>
351            <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a></li>
352            <li><a href="#static_android.lens.position">android.lens.position</a></li>
353          </ul>
354        </li>
355        <li>
356          <span class="toc_kind_header">dynamic</span>
357          <ul class="toc_section">
358            <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a></li>
359            <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a></li>
360            <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a></li>
361            <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a></li>
362            <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a></li>
363            <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
364            <li><a href="#dynamic_android.lens.state">android.lens.state</a></li>
365          </ul>
366        </li>
367      </ul> <!-- toc_section -->
368    </li>
369    <li>
370      <span class="toc_section_header"><a href="#section_noiseReduction">noiseReduction</a></span>
371      <ul class="toc_section">
372        <li>
373          <span class="toc_kind_header">controls</span>
374          <ul class="toc_section">
375            <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
376            <li><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a></li>
377          </ul>
378        </li>
379        <li>
380          <span class="toc_kind_header">dynamic</span>
381          <ul class="toc_section">
382            <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
383          </ul>
384        </li>
385      </ul> <!-- toc_section -->
386    </li>
387    <li>
388      <span class="toc_section_header"><a href="#section_quirks">quirks</a></span>
389      <ul class="toc_section">
390        <li>
391          <span class="toc_kind_header">static</span>
392          <ul class="toc_section">
393            <li><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a></li>
394            <li><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a></li>
395            <li><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a></li>
396            <li><a href="#static_android.quirks.usePartialResult">android.quirks.usePartialResult</a></li>
397          </ul>
398        </li>
399        <li>
400          <span class="toc_kind_header">dynamic</span>
401          <ul class="toc_section">
402            <li><a href="#dynamic_android.quirks.partialResult">android.quirks.partialResult</a></li>
403          </ul>
404        </li>
405      </ul> <!-- toc_section -->
406    </li>
407    <li>
408      <span class="toc_section_header"><a href="#section_request">request</a></span>
409      <ul class="toc_section">
410        <li>
411          <span class="toc_kind_header">controls</span>
412          <ul class="toc_section">
413            <li><a href="#controls_android.request.frameCount">android.request.frameCount</a></li>
414            <li><a href="#controls_android.request.id">android.request.id</a></li>
415            <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a></li>
416            <li><a href="#controls_android.request.metadataMode">android.request.metadataMode</a></li>
417            <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a></li>
418            <li><a href="#controls_android.request.type">android.request.type</a></li>
419          </ul>
420        </li>
421        <li>
422          <span class="toc_kind_header">static</span>
423          <ul class="toc_section">
424            <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a></li>
425            <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a></li>
426          </ul>
427        </li>
428        <li>
429          <span class="toc_kind_header">dynamic</span>
430          <ul class="toc_section">
431            <li><a href="#dynamic_android.request.frameCount">android.request.frameCount</a></li>
432            <li><a href="#dynamic_android.request.id">android.request.id</a></li>
433            <li><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a></li>
434            <li><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a></li>
435          </ul>
436        </li>
437      </ul> <!-- toc_section -->
438    </li>
439    <li>
440      <span class="toc_section_header"><a href="#section_scaler">scaler</a></span>
441      <ul class="toc_section">
442        <li>
443          <span class="toc_kind_header">controls</span>
444          <ul class="toc_section">
445            <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
446          </ul>
447        </li>
448        <li>
449          <span class="toc_kind_header">static</span>
450          <ul class="toc_section">
451            <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a></li>
452            <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a></li>
453            <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a></li>
454            <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a></li>
455            <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a></li>
456            <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a></li>
457            <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a></li>
458            <li><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a></li>
459          </ul>
460        </li>
461        <li>
462          <span class="toc_kind_header">dynamic</span>
463          <ul class="toc_section">
464            <li><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
465          </ul>
466        </li>
467      </ul> <!-- toc_section -->
468    </li>
469    <li>
470      <span class="toc_section_header"><a href="#section_sensor">sensor</a></span>
471      <ul class="toc_section">
472        <li>
473          <span class="toc_kind_header">controls</span>
474          <ul class="toc_section">
475            <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
476            <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
477            <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
478          </ul>
479        </li>
480        <li>
481          <span class="toc_kind_header">static</span>
482          <ul class="toc_section">
483
484            <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a></li>
485            <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a></li>
486            <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a></li>
487            <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a></li>
488            <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a></li>
489            <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a></li>
490            <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a></li>
491            <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a></li>
492
493            <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a></li>
494            <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a></li>
495            <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a></li>
496            <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a></li>
497            <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a></li>
498            <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a></li>
499            <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a></li>
500            <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a></li>
501            <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a></li>
502            <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a></li>
503            <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a></li>
504            <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a></li>
505            <li><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a></li>
506          </ul>
507        </li>
508        <li>
509          <span class="toc_kind_header">dynamic</span>
510          <ul class="toc_section">
511            <li><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
512            <li><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
513            <li><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
514            <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a></li>
515            <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a></li>
516          </ul>
517        </li>
518      </ul> <!-- toc_section -->
519    </li>
520    <li>
521      <span class="toc_section_header"><a href="#section_shading">shading</a></span>
522      <ul class="toc_section">
523        <li>
524          <span class="toc_kind_header">controls</span>
525          <ul class="toc_section">
526            <li><a href="#controls_android.shading.mode">android.shading.mode</a></li>
527            <li><a href="#controls_android.shading.strength">android.shading.strength</a></li>
528          </ul>
529        </li>
530        <li>
531          <span class="toc_kind_header">dynamic</span>
532          <ul class="toc_section">
533            <li><a href="#dynamic_android.shading.mode">android.shading.mode</a></li>
534          </ul>
535        </li>
536      </ul> <!-- toc_section -->
537    </li>
538    <li>
539      <span class="toc_section_header"><a href="#section_statistics">statistics</a></span>
540      <ul class="toc_section">
541        <li>
542          <span class="toc_kind_header">controls</span>
543          <ul class="toc_section">
544            <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
545            <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
546            <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
547            <li><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
548          </ul>
549        </li>
550        <li>
551          <span class="toc_kind_header">static</span>
552          <ul class="toc_section">
553
554            <li><a href="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a></li>
555            <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a></li>
556            <li><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a></li>
557            <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a></li>
558            <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a></li>
559            <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a></li>
560
561          </ul>
562        </li>
563        <li>
564          <span class="toc_kind_header">dynamic</span>
565          <ul class="toc_section">
566            <li><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
567            <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a></li>
568            <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a></li>
569            <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a></li>
570            <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a></li>
571            <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a></li>
572            <li><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
573            <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a></li>
574            <li><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
575            <li><a href="#dynamic_android.statistics.lensShadingMap">android.statistics.lensShadingMap</a></li>
576            <li><a href="#dynamic_android.statistics.predictedColorGains">android.statistics.predictedColorGains</a></li>
577            <li><a href="#dynamic_android.statistics.predictedColorTransform">android.statistics.predictedColorTransform</a></li>
578            <li><a href="#dynamic_android.statistics.sceneFlicker">android.statistics.sceneFlicker</a></li>
579          </ul>
580        </li>
581      </ul> <!-- toc_section -->
582    </li>
583    <li>
584      <span class="toc_section_header"><a href="#section_tonemap">tonemap</a></span>
585      <ul class="toc_section">
586        <li>
587          <span class="toc_kind_header">controls</span>
588          <ul class="toc_section">
589            <li><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
590            <li><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
591            <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
592            <li><a href="#controls_android.tonemap.mode">android.tonemap.mode</a></li>
593          </ul>
594        </li>
595        <li>
596          <span class="toc_kind_header">static</span>
597          <ul class="toc_section">
598            <li><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a></li>
599          </ul>
600        </li>
601        <li>
602          <span class="toc_kind_header">dynamic</span>
603          <ul class="toc_section">
604            <li><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
605            <li><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
606            <li><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
607            <li><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a></li>
608          </ul>
609        </li>
610      </ul> <!-- toc_section -->
611    </li>
612    <li>
613      <span class="toc_section_header"><a href="#section_led">led</a></span>
614      <ul class="toc_section">
615        <li>
616          <span class="toc_kind_header">controls</span>
617          <ul class="toc_section">
618            <li><a href="#controls_android.led.transmit">android.led.transmit</a></li>
619          </ul>
620        </li>
621        <li>
622          <span class="toc_kind_header">dynamic</span>
623          <ul class="toc_section">
624            <li><a href="#dynamic_android.led.transmit">android.led.transmit</a></li>
625          </ul>
626        </li>
627        <li>
628          <span class="toc_kind_header">static</span>
629          <ul class="toc_section">
630            <li><a href="#static_android.led.availableLeds">android.led.availableLeds</a></li>
631          </ul>
632        </li>
633      </ul> <!-- toc_section -->
634    </li>
635    <li>
636      <span class="toc_section_header"><a href="#section_info">info</a></span>
637      <ul class="toc_section">
638        <li>
639          <span class="toc_kind_header">static</span>
640          <ul class="toc_section">
641            <li><a href="#static_android.info.supportedHardwareLevel">android.info.supportedHardwareLevel</a></li>
642          </ul>
643        </li>
644      </ul> <!-- toc_section -->
645    </li>
646    <li>
647      <span class="toc_section_header"><a href="#section_blackLevel">blackLevel</a></span>
648      <ul class="toc_section">
649        <li>
650          <span class="toc_kind_header">controls</span>
651          <ul class="toc_section">
652            <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a></li>
653          </ul>
654        </li>
655        <li>
656          <span class="toc_kind_header">dynamic</span>
657          <ul class="toc_section">
658            <li><a href="#dynamic_android.blackLevel.lock">android.blackLevel.lock</a></li>
659          </ul>
660        </li>
661      </ul> <!-- toc_section -->
662    </li>
663  </ul>
664
665
666  <h1>Properties</h1>
667  <table class="properties">
668
669    <thead class="thead_dummy">
670      <tr>
671        <th class="th_name">Property Name</th>
672        <th class="th_type">Type</th>
673        <th class="th_description">Description</th>
674        <th class="th_units">Units</th>
675        <th class="th_range">Range</th>
676        <th class="th_tags">Tags</th>
677      </tr>
678    </thead> <!-- so that the first occurrence of thead is not
679                         above the first occurrence of tr -->
680<!-- <namespace name="android"> -->
681  <tr><td colspan="6" id="section_colorCorrection" class="section">colorCorrection</td></tr>
682
683
684      <tr><td colspan="6" class="kind">controls</td></tr>
685
686      <thead class="entries_header">
687        <tr>
688          <th class="th_name">Property Name</th>
689          <th class="th_type">Type</th>
690          <th class="th_description">Description</th>
691          <th class="th_units">Units</th>
692          <th class="th_range">Range</th>
693          <th class="th_tags">Tags</th>
694        </tr>
695      </thead>
696
697      <tbody>
698
699        
700
701        
702
703        
704
705        
706
707                
708          <tr class="entry" id="controls_android.colorCorrection.mode">
709            <td class="entry_name" rowspan="3">
710              android.<wbr/>color<wbr/>Correction.<wbr/>mode
711            </td>
712            <td class="entry_type">
713                <span class="entry_type_name entry_type_name_enum">byte</span>
714
715              <span class="entry_type_visibility"> [public]</span>
716
717                <ul class="entry_type_enum">
718                  <li>
719                    <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
720                    <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
721and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion</p></span>
722                  </li>
723                  <li>
724                    <span class="entry_type_enum_name">FAST</span>
725                    <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw
726bayer output</p></span>
727                  </li>
728                  <li>
729                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
730                    <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
731quality</p></span>
732                  </li>
733                </ul>
734
735            </td> <!-- entry_type -->
736
737            <td class="entry_description">
738            </td>
739
740            <td class="entry_units">
741            </td>
742
743            <td class="entry_range">
744            </td>
745
746            <td class="entry_tags">
747            </td>
748
749          </tr>
750          <tr class="entries_header">
751            <th class="th_details" colspan="5">Details</th>
752          </tr>
753          <tr class="entry_cont">
754            <td class="entry_details" colspan="5">
755              <p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is not OFF,<wbr/> TRANSFORM_<wbr/>MATRIX
756should be ignored.<wbr/></p>
757            </td>
758          </tr>
759
760
761          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
762           <!-- end of entry -->
763        
764                
765          <tr class="entry" id="controls_android.colorCorrection.transform">
766            <td class="entry_name" rowspan="3">
767              android.<wbr/>color<wbr/>Correction.<wbr/>transform
768            </td>
769            <td class="entry_type">
770                <span class="entry_type_name">rational</span>
771                <span class="entry_type_container">x</span>
772
773                <span class="entry_type_array">
774                  3 x 3
775                </span>
776              <span class="entry_type_visibility"> [public]</span>
777                <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
778
779
780            </td> <!-- entry_type -->
781
782            <td class="entry_description">
783              <p>A color transform matrix to use to transform
784from sensor RGB color space to output linear sRGB color space</p>
785            </td>
786
787            <td class="entry_units">
788            </td>
789
790            <td class="entry_range">
791              <p>Output values are expected to be in the range
792(0,<wbr/>1)</p>
793            </td>
794
795            <td class="entry_tags">
796            </td>
797
798          </tr>
799          <tr class="entries_header">
800            <th class="th_details" colspan="5">Details</th>
801          </tr>
802          <tr class="entry_cont">
803            <td class="entry_details" colspan="5">
804              <p>This matrix is either set by HAL when the request
805<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
806directly by the application in the request when the
807<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
808<p>In the latter case,<wbr/> the HAL may round the matrix to account
809for precision issues; the final rounded matrix should be
810reported back in this matrix result metadata.<wbr/></p>
811            </td>
812          </tr>
813
814
815          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
816           <!-- end of entry -->
817        
818                
819          <tr class="entry" id="controls_android.colorCorrection.gains">
820            <td class="entry_name" rowspan="3">
821              android.<wbr/>color<wbr/>Correction.<wbr/>gains
822            </td>
823            <td class="entry_type">
824                <span class="entry_type_name">float</span>
825                <span class="entry_type_container">x</span>
826
827                <span class="entry_type_array">
828                  4
829                </span>
830              <span class="entry_type_visibility"> [public]</span>
831                <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
832
833
834            </td> <!-- entry_type -->
835
836            <td class="entry_description">
837              <p>Gains applying to Bayer color channels for
838white-balance</p>
839            </td>
840
841            <td class="entry_units">
842            </td>
843
844            <td class="entry_range">
845            </td>
846
847            <td class="entry_tags">
848            </td>
849
850          </tr>
851          <tr class="entries_header">
852            <th class="th_details" colspan="5">Details</th>
853          </tr>
854          <tr class="entry_cont">
855            <td class="entry_details" colspan="5">
856              <p>The 4-channel white-balance gains are defined in
857the order of [R G_<wbr/>even G_<wbr/>odd B],<wbr/> where G_<wbr/>even is the gain
858for green pixels on even rows of the output,<wbr/> and G_<wbr/>odd
859is the gain for greenpixels on the odd rows.<wbr/> if a HAL
860does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
861it should use the G_<wbr/>even value,<wbr/>and write G_<wbr/>odd equal to
862G_<wbr/>even in the output result metadata.<wbr/></p>
863<p>This array is either set by HAL when the request
864<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
865directly by the application in the request when the
866<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
867<p>The ouput should be the gains actually applied by the HAL to
868the current frame.<wbr/></p>
869            </td>
870          </tr>
871
872
873          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
874           <!-- end of entry -->
875        
876        
877
878      <!-- end of kind -->
879      </tbody>
880      <tr><td colspan="6" class="kind">dynamic</td></tr>
881
882      <thead class="entries_header">
883        <tr>
884          <th class="th_name">Property Name</th>
885          <th class="th_type">Type</th>
886          <th class="th_description">Description</th>
887          <th class="th_units">Units</th>
888          <th class="th_range">Range</th>
889          <th class="th_tags">Tags</th>
890        </tr>
891      </thead>
892
893      <tbody>
894
895        
896
897        
898
899        
900
901        
902
903                
904          <tr class="entry" id="dynamic_android.colorCorrection.transform">
905            <td class="entry_name" rowspan="3">
906              android.<wbr/>color<wbr/>Correction.<wbr/>transform
907            </td>
908            <td class="entry_type">
909                <span class="entry_type_name">rational</span>
910                <span class="entry_type_container">x</span>
911
912                <span class="entry_type_array">
913                  3 x 3
914                </span>
915              <span class="entry_type_visibility"> [public]</span>
916                <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
917
918
919            </td> <!-- entry_type -->
920
921            <td class="entry_description">
922              <p>A color transform matrix to use to transform
923from sensor RGB color space to output linear sRGB color space</p>
924            </td>
925
926            <td class="entry_units">
927            </td>
928
929            <td class="entry_range">
930              <p>Output values are expected to be in the range
931(0,<wbr/>1)</p>
932            </td>
933
934            <td class="entry_tags">
935            </td>
936
937          </tr>
938          <tr class="entries_header">
939            <th class="th_details" colspan="5">Details</th>
940          </tr>
941          <tr class="entry_cont">
942            <td class="entry_details" colspan="5">
943              <p>This matrix is either set by HAL when the request
944<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
945directly by the application in the request when the
946<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
947<p>In the latter case,<wbr/> the HAL may round the matrix to account
948for precision issues; the final rounded matrix should be
949reported back in this matrix result metadata.<wbr/></p>
950            </td>
951          </tr>
952
953
954          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
955           <!-- end of entry -->
956        
957                
958          <tr class="entry" id="dynamic_android.colorCorrection.gains">
959            <td class="entry_name" rowspan="3">
960              android.<wbr/>color<wbr/>Correction.<wbr/>gains
961            </td>
962            <td class="entry_type">
963                <span class="entry_type_name">float</span>
964                <span class="entry_type_container">x</span>
965
966                <span class="entry_type_array">
967                  4
968                </span>
969              <span class="entry_type_visibility"> [public]</span>
970                <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
971
972
973            </td> <!-- entry_type -->
974
975            <td class="entry_description">
976              <p>Gains applying to Bayer color channels for
977white-balance</p>
978            </td>
979
980            <td class="entry_units">
981            </td>
982
983            <td class="entry_range">
984            </td>
985
986            <td class="entry_tags">
987            </td>
988
989          </tr>
990          <tr class="entries_header">
991            <th class="th_details" colspan="5">Details</th>
992          </tr>
993          <tr class="entry_cont">
994            <td class="entry_details" colspan="5">
995              <p>The 4-channel white-balance gains are defined in
996the order of [R G_<wbr/>even G_<wbr/>odd B],<wbr/> where G_<wbr/>even is the gain
997for green pixels on even rows of the output,<wbr/> and G_<wbr/>odd
998is the gain for greenpixels on the odd rows.<wbr/> if a HAL
999does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
1000it should use the G_<wbr/>even value,<wbr/>and write G_<wbr/>odd equal to
1001G_<wbr/>even in the output result metadata.<wbr/></p>
1002<p>This array is either set by HAL when the request
1003<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
1004directly by the application in the request when the
1005<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
1006<p>The ouput should be the gains actually applied by the HAL to
1007the current frame.<wbr/></p>
1008            </td>
1009          </tr>
1010
1011
1012          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1013           <!-- end of entry -->
1014        
1015        
1016
1017      <!-- end of kind -->
1018      </tbody>
1019
1020  <!-- end of section -->
1021  <tr><td colspan="6" id="section_control" class="section">control</td></tr>
1022
1023
1024      <tr><td colspan="6" class="kind">controls</td></tr>
1025
1026      <thead class="entries_header">
1027        <tr>
1028          <th class="th_name">Property Name</th>
1029          <th class="th_type">Type</th>
1030          <th class="th_description">Description</th>
1031          <th class="th_units">Units</th>
1032          <th class="th_range">Range</th>
1033          <th class="th_tags">Tags</th>
1034        </tr>
1035      </thead>
1036
1037      <tbody>
1038
1039        
1040
1041        
1042
1043        
1044
1045        
1046
1047                
1048          <tr class="entry" id="controls_android.control.aeAntibandingMode">
1049            <td class="entry_name" rowspan="5">
1050              android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
1051            </td>
1052            <td class="entry_type">
1053                <span class="entry_type_name entry_type_name_enum">byte</span>
1054
1055              <span class="entry_type_visibility"> [public]</span>
1056
1057                <ul class="entry_type_enum">
1058                  <li>
1059                    <span class="entry_type_enum_name">OFF</span>
1060                    <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
1061avoid banding problems.<wbr/></p></span>
1062                  </li>
1063                  <li>
1064                    <span class="entry_type_enum_name">50HZ</span>
1065                    <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1066avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
1067                  </li>
1068                  <li>
1069                    <span class="entry_type_enum_name">60HZ</span>
1070                    <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1071avoid banding problems with 60Hz illumination
1072sources.<wbr/></p></span>
1073                  </li>
1074                  <li>
1075                    <span class="entry_type_enum_name">AUTO</span>
1076                    <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
1077antibanding routine to the current illumination
1078conditions.<wbr/> This is the default.<wbr/></p></span>
1079                  </li>
1080                </ul>
1081
1082            </td> <!-- entry_type -->
1083
1084            <td class="entry_description">
1085              <p>The desired setting for the camera device's auto-exposure
1086algorithm's antibanding compensation.<wbr/></p>
1087            </td>
1088
1089            <td class="entry_units">
1090            </td>
1091
1092            <td class="entry_range">
1093              <p><a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a></p>
1094            </td>
1095
1096            <td class="entry_tags">
1097              <ul class="entry_tags">
1098                  <li><a href="#tag_BC">BC</a></li>
1099              </ul>
1100            </td>
1101
1102          </tr>
1103          <tr class="entries_header">
1104            <th class="th_details" colspan="5">Details</th>
1105          </tr>
1106          <tr class="entry_cont">
1107            <td class="entry_details" colspan="5">
1108              <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
1109lights,<wbr/> flicker at the rate of the power supply frequency
1110(60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
1111typically not noticeable to a person,<wbr/> it can be visible to
1112a camera device.<wbr/> If a camera sets its exposure time to the
1113wrong value,<wbr/> the flicker may become visible in the
1114viewfinder as flicker or in a final captured image,<wbr/> as a
1115set of variable-brightness bands across the image.<wbr/></p>
1116<p>Therefore,<wbr/> the auto-exposure routines of camera devices
1117include antibanding routines that ensure that the chosen
1118exposure value will not cause such banding.<wbr/> The choice of
1119exposure time depends on the rate of flicker,<wbr/> which the
1120camera device can detect automatically,<wbr/> or the expected
1121rate can be selected by the application using this
1122control.<wbr/></p>
1123<p>A given camera device may not support all of the possible
1124options for the antibanding mode.<wbr/> The
1125<a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
1126the available modes for a given camera device.<wbr/></p>
1127<p>The default mode is AUTO,<wbr/> which must be supported by all
1128camera devices.<wbr/></p>
1129<p>If manual exposure control is enabled (by setting
1130<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/>
1131then this setting has no effect,<wbr/> and the application must
1132ensure it selects exposure times that do not cause banding
1133issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
1134the application in this.<wbr/></p>
1135            </td>
1136          </tr>
1137
1138          <tr class="entries_header">
1139            <th class="th_details" colspan="5">HAL Implementation Details</th>
1140          </tr>
1141          <tr class="entry_cont">
1142            <td class="entry_details" colspan="5">
1143              <p>For all capture request templates,<wbr/> this field must be set
1144to AUTO.<wbr/>  AUTO is the only mode that must supported;
1145OFF,<wbr/> 50HZ,<wbr/> 60HZ are all optional.<wbr/></p>
1146<p>If manual exposure control is enabled (by setting
1147<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/>
1148then the exposure values provided by the application must not be
1149adjusted for antibanding.<wbr/></p>
1150            </td>
1151          </tr>
1152
1153          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1154           <!-- end of entry -->
1155        
1156                
1157          <tr class="entry" id="controls_android.control.aeExposureCompensation">
1158            <td class="entry_name" rowspan="3">
1159              android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation
1160            </td>
1161            <td class="entry_type">
1162                <span class="entry_type_name">int32</span>
1163
1164              <span class="entry_type_visibility"> [public]</span>
1165
1166
1167            </td> <!-- entry_type -->
1168
1169            <td class="entry_description">
1170              <p>Adjustment to AE target image
1171brightness</p>
1172            </td>
1173
1174            <td class="entry_units">
1175              count of positive/<wbr/>negative EV steps
1176            </td>
1177
1178            <td class="entry_range">
1179            </td>
1180
1181            <td class="entry_tags">
1182              <ul class="entry_tags">
1183                  <li><a href="#tag_BC">BC</a></li>
1184              </ul>
1185            </td>
1186
1187          </tr>
1188          <tr class="entries_header">
1189            <th class="th_details" colspan="5">Details</th>
1190          </tr>
1191          <tr class="entry_cont">
1192            <td class="entry_details" colspan="5">
1193              <p>For example,<wbr/> if EV step is 0.<wbr/>333,<wbr/> '6' will mean an
1194exposure compensation of +2 EV; -3 will mean an exposure
1195compensation of -1</p>
1196            </td>
1197          </tr>
1198
1199
1200          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1201           <!-- end of entry -->
1202        
1203                
1204          <tr class="entry" id="controls_android.control.aeLock">
1205            <td class="entry_name" rowspan="3">
1206              android.<wbr/>control.<wbr/>ae<wbr/>Lock
1207            </td>
1208            <td class="entry_type">
1209                <span class="entry_type_name entry_type_name_enum">byte</span>
1210
1211              <span class="entry_type_visibility"> [public as boolean]</span>
1212
1213                <ul class="entry_type_enum">
1214                  <li>
1215                    <span class="entry_type_enum_name">OFF</span>
1216                    <span class="entry_type_enum_notes"><p>Autoexposure lock is disabled; the AE algorithm
1217is free to update its parameters.<wbr/></p></span>
1218                  </li>
1219                  <li>
1220                    <span class="entry_type_enum_name">ON</span>
1221                    <span class="entry_type_enum_notes"><p>Autoexposure lock is enabled; the AE algorithm
1222must not update the exposure and sensitivity parameters
1223while the lock is active</p></span>
1224                  </li>
1225                </ul>
1226
1227            </td> <!-- entry_type -->
1228
1229            <td class="entry_description">
1230              <p>Whether AE is currently locked to its latest
1231calculated values</p>
1232            </td>
1233
1234            <td class="entry_units">
1235            </td>
1236
1237            <td class="entry_range">
1238            </td>
1239
1240            <td class="entry_tags">
1241              <ul class="entry_tags">
1242                  <li><a href="#tag_BC">BC</a></li>
1243              </ul>
1244            </td>
1245
1246          </tr>
1247          <tr class="entries_header">
1248            <th class="th_details" colspan="5">Details</th>
1249          </tr>
1250          <tr class="entry_cont">
1251            <td class="entry_details" colspan="5">
1252              <p>Note that even when AE is locked,<wbr/> the flash may be
1253fired if the AE mode is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/> ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/>
1254ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
1255            </td>
1256          </tr>
1257
1258
1259          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1260           <!-- end of entry -->
1261        
1262                
1263          <tr class="entry" id="controls_android.control.aeMode">
1264            <td class="entry_name" rowspan="3">
1265              android.<wbr/>control.<wbr/>ae<wbr/>Mode
1266            </td>
1267            <td class="entry_type">
1268                <span class="entry_type_name entry_type_name_enum">byte</span>
1269
1270              <span class="entry_type_visibility"> [public]</span>
1271
1272                <ul class="entry_type_enum">
1273                  <li>
1274                    <span class="entry_type_enum_name">OFF</span>
1275                    <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
1276the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1277<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
1278<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
1279device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
1280a flash unit for this camera device.<wbr/></p></span>
1281                  </li>
1282                  <li>
1283                    <span class="entry_type_enum_name">ON</span>
1284                    <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
1285with no flash control.<wbr/> The application's values for
1286<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1287<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1288<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
1289application has control over the various
1290android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
1291                  </li>
1292                  <li>
1293                    <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
1294                    <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1295the camera's flash unit,<wbr/> firing it in low-light
1296conditions.<wbr/> The flash may be fired during a
1297precapture sequence (triggered by
1298<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
1299for captures for which the
1300<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1301STILL_<wbr/>CAPTURE</p></span>
1302                  </li>
1303                  <li>
1304                    <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
1305                    <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1306the camera's flash unit,<wbr/> always firing it for still
1307captures.<wbr/> The flash may be fired during a precapture
1308sequence (triggered by
1309<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
1310be fired for captures for which the
1311<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1312STILL_<wbr/>CAPTURE</p></span>
1313                  </li>
1314                  <li>
1315                    <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
1316                    <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
1317reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
1318a red eye reduction flash will fire during the
1319precapture sequence.<wbr/></p></span>
1320                  </li>
1321                </ul>
1322
1323            </td> <!-- entry_type -->
1324
1325            <td class="entry_description">
1326              <p>The desired mode for the camera device's
1327auto-exposure routine.<wbr/></p>
1328            </td>
1329
1330            <td class="entry_units">
1331            </td>
1332
1333            <td class="entry_range">
1334              <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
1335            </td>
1336
1337            <td class="entry_tags">
1338              <ul class="entry_tags">
1339                  <li><a href="#tag_BC">BC</a></li>
1340              </ul>
1341            </td>
1342
1343          </tr>
1344          <tr class="entries_header">
1345            <th class="th_details" colspan="5">Details</th>
1346          </tr>
1347          <tr class="entry_cont">
1348            <td class="entry_details" colspan="5">
1349              <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
1350AUTO.<wbr/></p>
1351<p>When set to any of the ON modes,<wbr/> the camera device's
1352auto-exposure routine is enabled,<wbr/> overriding the
1353application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
1354and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1355<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1356<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
1357is selected,<wbr/> the camera device's flash unit controls are
1358also overridden.<wbr/></p>
1359<p>The FLASH modes are only available if the camera device
1360has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
1361<p>If flash TORCH mode is desired,<wbr/> this field must be set to
1362ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
1363<p>When set to any of the ON modes,<wbr/> the values chosen by the
1364camera device auto-exposure routine for the overridden
1365fields for a given capture will be available in its
1366CaptureResult.<wbr/></p>
1367            </td>
1368          </tr>
1369
1370
1371          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1372           <!-- end of entry -->
1373        
1374                
1375          <tr class="entry" id="controls_android.control.aeRegions">
1376            <td class="entry_name" rowspan="3">
1377              android.<wbr/>control.<wbr/>ae<wbr/>Regions
1378            </td>
1379            <td class="entry_type">
1380                <span class="entry_type_name">int32</span>
1381                <span class="entry_type_container">x</span>
1382
1383                <span class="entry_type_array">
1384                  5 x area_count
1385                </span>
1386              <span class="entry_type_visibility"> [public]</span>
1387
1388
1389            </td> <!-- entry_type -->
1390
1391            <td class="entry_description">
1392              <p>List of areas to use for
1393metering</p>
1394            </td>
1395
1396            <td class="entry_units">
1397            </td>
1398
1399            <td class="entry_range">
1400            </td>
1401
1402            <td class="entry_tags">
1403              <ul class="entry_tags">
1404                  <li><a href="#tag_BC">BC</a></li>
1405              </ul>
1406            </td>
1407
1408          </tr>
1409          <tr class="entries_header">
1410            <th class="th_details" colspan="5">Details</th>
1411          </tr>
1412          <tr class="entry_cont">
1413            <td class="entry_details" colspan="5">
1414              <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
1415xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
1416specified coordinates.<wbr/></p>
1417<p>The coordinate system is based on the active pixel array,<wbr/>
1418with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
1419(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1420<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
1421bottom-right pixel in the active pixel array.<wbr/> The weight
1422should be nonnegative.<wbr/></p>
1423<p>If all regions have 0 weight,<wbr/> then no specific metering area
1424needs to be used by the HAL.<wbr/> If the metering region is
1425outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
1426should ignore the sections outside the region and output the
1427used sections in the frame metadata</p>
1428            </td>
1429          </tr>
1430
1431
1432          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1433           <!-- end of entry -->
1434        
1435                
1436          <tr class="entry" id="controls_android.control.aeTargetFpsRange">
1437            <td class="entry_name" rowspan="3">
1438              android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range
1439            </td>
1440            <td class="entry_type">
1441                <span class="entry_type_name">int32</span>
1442                <span class="entry_type_container">x</span>
1443
1444                <span class="entry_type_array">
1445                  2
1446                </span>
1447              <span class="entry_type_visibility"> [public]</span>
1448
1449
1450            </td> <!-- entry_type -->
1451
1452            <td class="entry_description">
1453              <p>Range over which fps can be adjusted to
1454maintain exposure</p>
1455            </td>
1456
1457            <td class="entry_units">
1458            </td>
1459
1460            <td class="entry_range">
1461              <p><a href="#static_android.control.aeAvailableTargetFpsRanges">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges</a></p>
1462            </td>
1463
1464            <td class="entry_tags">
1465              <ul class="entry_tags">
1466                  <li><a href="#tag_BC">BC</a></li>
1467              </ul>
1468            </td>
1469
1470          </tr>
1471          <tr class="entries_header">
1472            <th class="th_details" colspan="5">Details</th>
1473          </tr>
1474          <tr class="entry_cont">
1475            <td class="entry_details" colspan="5">
1476              <p>Only constrains AE algorithm,<wbr/> not manual control
1477of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></p>
1478            </td>
1479          </tr>
1480
1481
1482          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1483           <!-- end of entry -->
1484        
1485                
1486          <tr class="entry" id="controls_android.control.aePrecaptureTrigger">
1487            <td class="entry_name" rowspan="3">
1488              android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger
1489            </td>
1490            <td class="entry_type">
1491                <span class="entry_type_name entry_type_name_enum">byte</span>
1492
1493              <span class="entry_type_visibility"> [public]</span>
1494
1495                <ul class="entry_type_enum">
1496                  <li>
1497                    <span class="entry_type_enum_name">IDLE</span>
1498                    <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
1499                  </li>
1500                  <li>
1501                    <span class="entry_type_enum_name">START</span>
1502                    <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
1503by the camera device.<wbr/> The exact effect of the precapture
1504trigger depends on the current AE mode and state.<wbr/></p></span>
1505                  </li>
1506                </ul>
1507
1508            </td> <!-- entry_type -->
1509
1510            <td class="entry_description">
1511              <p>Whether the camera device will trigger a precapture
1512metering sequence when it processes this request.<wbr/></p>
1513            </td>
1514
1515            <td class="entry_units">
1516            </td>
1517
1518            <td class="entry_range">
1519            </td>
1520
1521            <td class="entry_tags">
1522              <ul class="entry_tags">
1523                  <li><a href="#tag_BC">BC</a></li>
1524              </ul>
1525            </td>
1526
1527          </tr>
1528          <tr class="entries_header">
1529            <th class="th_details" colspan="5">Details</th>
1530          </tr>
1531          <tr class="entry_cont">
1532            <td class="entry_details" colspan="5">
1533              <p>This entry is normally set to IDLE,<wbr/> or is not
1534included at all in the request settings.<wbr/> When included and
1535set to START,<wbr/> the camera device will trigger the autoexposure
1536precapture metering sequence.<wbr/></p>
1537<p>The effect of AE precapture trigger depends on the current
1538AE mode and state; see <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture
1539state transition details.<wbr/></p>
1540            </td>
1541          </tr>
1542
1543
1544          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1545           <!-- end of entry -->
1546        
1547                
1548          <tr class="entry" id="controls_android.control.afMode">
1549            <td class="entry_name" rowspan="3">
1550              android.<wbr/>control.<wbr/>af<wbr/>Mode
1551            </td>
1552            <td class="entry_type">
1553                <span class="entry_type_name entry_type_name_enum">byte</span>
1554
1555              <span class="entry_type_visibility"> [public]</span>
1556
1557                <ul class="entry_type_enum">
1558                  <li>
1559                    <span class="entry_type_enum_name">OFF</span>
1560                    <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
1561<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
1562application</p></span>
1563                  </li>
1564                  <li>
1565                    <span class="entry_type_enum_name">AUTO</span>
1566                    <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
1567<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
1568is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
1569the autofocus trigger action is called.<wbr/> When that trigger
1570is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
1571the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
1572<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
1573and sets the AF state to INACTIVE.<wbr/></p></span>
1574                  </li>
1575                  <li>
1576                    <span class="entry_type_enum_name">MACRO</span>
1577                    <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
1578autofocus trigger action is called.<wbr/></p>
1579<p>When that trigger is activated,<wbr/> AF must transition to
1580ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
1581NOT_<wbr/>FOCUSED).<wbr/>  Triggering cancel AF resets the lens
1582position to default,<wbr/> and sets the AF state to
1583INACTIVE.<wbr/></p></span>
1584                  </li>
1585                  <li>
1586                    <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
1587                    <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1588position continually to attempt to provide a
1589constantly-in-focus image stream.<wbr/></p>
1590<p>The focusing behavior should be suitable for good quality
1591video recording; typically this means slower focus
1592movement and no overshoots.<wbr/> When the AF trigger is not
1593involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
1594and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
1595states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
1596the algorithm should immediately transition into
1597AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1598lens position until a cancel AF trigger is received.<wbr/></p>
1599<p>Once cancel is received,<wbr/> the algorithm should transition
1600back to INACTIVE and resume passive scan.<wbr/> Note that this
1601behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
1602ongoing PASSIVE_<wbr/>SCAN must immediately be
1603canceled.<wbr/></p></span>
1604                  </li>
1605                  <li>
1606                    <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
1607                    <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1608position continually to attempt to provide a
1609constantly-in-focus image stream.<wbr/></p>
1610<p>The focusing behavior should be suitable for still image
1611capture; typically this means focusing as fast as
1612possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
1613algorithm should start in INACTIVE state,<wbr/> and then
1614transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
1615appropriate as it attempts to maintain focus.<wbr/> When the AF
1616trigger is activated,<wbr/> the algorithm should finish its
1617PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
1618AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1619lens position until a cancel AF trigger is received.<wbr/></p>
1620<p>When the AF cancel trigger is activated,<wbr/> the algorithm
1621should transition back to INACTIVE and then act as if it
1622has just been started.<wbr/></p></span>
1623                  </li>
1624                  <li>
1625                    <span class="entry_type_enum_name">EDOF</span>
1626                    <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
1627trigger is ignored,<wbr/> AF state should always be
1628INACTIVE.<wbr/></p></span>
1629                  </li>
1630                </ul>
1631
1632            </td> <!-- entry_type -->
1633
1634            <td class="entry_description">
1635              <p>Whether AF is currently enabled,<wbr/> and what
1636mode it is set to</p>
1637            </td>
1638
1639            <td class="entry_units">
1640            </td>
1641
1642            <td class="entry_range">
1643              <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
1644            </td>
1645
1646            <td class="entry_tags">
1647              <ul class="entry_tags">
1648                  <li><a href="#tag_BC">BC</a></li>
1649              </ul>
1650            </td>
1651
1652          </tr>
1653          <tr class="entries_header">
1654            <th class="th_details" colspan="5">Details</th>
1655          </tr>
1656          <tr class="entry_cont">
1657            <td class="entry_details" colspan="5">
1658              <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO.<wbr/></p>
1659<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
1660the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
1661in result metadata.<wbr/></p>
1662            </td>
1663          </tr>
1664
1665
1666          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1667           <!-- end of entry -->
1668        
1669                
1670          <tr class="entry" id="controls_android.control.afRegions">
1671            <td class="entry_name" rowspan="3">
1672              android.<wbr/>control.<wbr/>af<wbr/>Regions
1673            </td>
1674            <td class="entry_type">
1675                <span class="entry_type_name">int32</span>
1676                <span class="entry_type_container">x</span>
1677
1678                <span class="entry_type_array">
1679                  5 x area_count
1680                </span>
1681              <span class="entry_type_visibility"> [public]</span>
1682
1683
1684            </td> <!-- entry_type -->
1685
1686            <td class="entry_description">
1687              <p>List of areas to use for focus
1688estimation</p>
1689            </td>
1690
1691            <td class="entry_units">
1692            </td>
1693
1694            <td class="entry_range">
1695            </td>
1696
1697            <td class="entry_tags">
1698              <ul class="entry_tags">
1699                  <li><a href="#tag_BC">BC</a></li>
1700              </ul>
1701            </td>
1702
1703          </tr>
1704          <tr class="entries_header">
1705            <th class="th_details" colspan="5">Details</th>
1706          </tr>
1707          <tr class="entry_cont">
1708            <td class="entry_details" colspan="5">
1709              <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
1710xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
1711specified coordinates.<wbr/></p>
1712<p>The coordinate system is based on the active pixel array,<wbr/>
1713with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
1714(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1715<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
1716bottom-right pixel in the active pixel array.<wbr/> The weight
1717should be nonnegative.<wbr/></p>
1718<p>If all regions have 0 weight,<wbr/> then no specific focus area
1719needs to be used by the HAL.<wbr/> If the focusing region is
1720outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
1721should ignore the sections outside the region and output the
1722used sections in the frame metadata</p>
1723            </td>
1724          </tr>
1725
1726
1727          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1728           <!-- end of entry -->
1729        
1730                
1731          <tr class="entry" id="controls_android.control.afTrigger">
1732            <td class="entry_name" rowspan="3">
1733              android.<wbr/>control.<wbr/>af<wbr/>Trigger
1734            </td>
1735            <td class="entry_type">
1736                <span class="entry_type_name entry_type_name_enum">byte</span>
1737
1738              <span class="entry_type_visibility"> [public]</span>
1739
1740                <ul class="entry_type_enum">
1741                  <li>
1742                    <span class="entry_type_enum_name">IDLE</span>
1743                    <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
1744                  </li>
1745                  <li>
1746                    <span class="entry_type_enum_name">START</span>
1747                    <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
1748                  </li>
1749                  <li>
1750                    <span class="entry_type_enum_name">CANCEL</span>
1751                    <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
1752state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
1753                  </li>
1754                </ul>
1755
1756            </td> <!-- entry_type -->
1757
1758            <td class="entry_description">
1759              <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
1760            </td>
1761
1762            <td class="entry_units">
1763            </td>
1764
1765            <td class="entry_range">
1766            </td>
1767
1768            <td class="entry_tags">
1769              <ul class="entry_tags">
1770                  <li><a href="#tag_BC">BC</a></li>
1771              </ul>
1772            </td>
1773
1774          </tr>
1775          <tr class="entries_header">
1776            <th class="th_details" colspan="5">Details</th>
1777          </tr>
1778          <tr class="entry_cont">
1779            <td class="entry_details" colspan="5">
1780              <p>This entry is normally set to IDLE,<wbr/> or is not
1781included at all in the request settings.<wbr/></p>
1782<p>When included and set to START,<wbr/> the camera device will trigger the
1783autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
1784<p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
1785and return to its initial AF state.<wbr/></p>
1786<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>
1787            </td>
1788          </tr>
1789
1790
1791          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1792           <!-- end of entry -->
1793        
1794                
1795          <tr class="entry" id="controls_android.control.awbLock">
1796            <td class="entry_name" rowspan="3">
1797              android.<wbr/>control.<wbr/>awb<wbr/>Lock
1798            </td>
1799            <td class="entry_type">
1800                <span class="entry_type_name entry_type_name_enum">byte</span>
1801
1802              <span class="entry_type_visibility"> [public as boolean]</span>
1803
1804                <ul class="entry_type_enum">
1805                  <li>
1806                    <span class="entry_type_enum_name">OFF</span>
1807                    <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is disabled; the AWB
1808algorithm is free to update its parameters if in AUTO
1809mode.<wbr/></p></span>
1810                  </li>
1811                  <li>
1812                    <span class="entry_type_enum_name">ON</span>
1813                    <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is enabled; the AWB
1814algorithm must not update the exposure and sensitivity
1815parameters while the lock is active</p></span>
1816                  </li>
1817                </ul>
1818
1819            </td> <!-- entry_type -->
1820
1821            <td class="entry_description">
1822              <p>Whether AWB is currently locked to its
1823latest calculated values</p>
1824            </td>
1825
1826            <td class="entry_units">
1827            </td>
1828
1829            <td class="entry_range">
1830            </td>
1831
1832            <td class="entry_tags">
1833              <ul class="entry_tags">
1834                  <li><a href="#tag_BC">BC</a></li>
1835              </ul>
1836            </td>
1837
1838          </tr>
1839          <tr class="entries_header">
1840            <th class="th_details" colspan="5">Details</th>
1841          </tr>
1842          <tr class="entry_cont">
1843            <td class="entry_details" colspan="5">
1844              <p>Note that AWB lock is only meaningful for AUTO
1845mode; in other modes,<wbr/> AWB is already fixed to a specific
1846setting</p>
1847            </td>
1848          </tr>
1849
1850
1851          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1852           <!-- end of entry -->
1853        
1854                
1855          <tr class="entry" id="controls_android.control.awbMode">
1856            <td class="entry_name" rowspan="3">
1857              android.<wbr/>control.<wbr/>awb<wbr/>Mode
1858            </td>
1859            <td class="entry_type">
1860                <span class="entry_type_name entry_type_name_enum">byte</span>
1861
1862              <span class="entry_type_visibility"> [public]</span>
1863
1864                <ul class="entry_type_enum">
1865                  <li>
1866                    <span class="entry_type_enum_name">OFF</span>
1867                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1868the application-selected color transform matrix
1869(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
1870(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
1871device for manual white balance control.<wbr/></p></span>
1872                  </li>
1873                  <li>
1874                    <span class="entry_type_enum_name">AUTO</span>
1875                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
1876the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
1877and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/></p></span>
1878                  </li>
1879                  <li>
1880                    <span class="entry_type_enum_name">INCANDESCENT</span>
1881                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1882the camera device uses incandescent light as the assumed scene
1883illumination for white balance.<wbr/> While the exact white balance
1884transforms are up to the camera device,<wbr/> they will approximately
1885match the CIE standard illuminant A.<wbr/></p></span>
1886                  </li>
1887                  <li>
1888                    <span class="entry_type_enum_name">FLUORESCENT</span>
1889                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1890the camera device uses fluorescent light as the assumed scene
1891illumination for white balance.<wbr/> While the exact white balance
1892transforms are up to the camera device,<wbr/> they will approximately
1893match the CIE standard illuminant F2.<wbr/></p></span>
1894                  </li>
1895                  <li>
1896                    <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
1897                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1898the camera device uses warm fluorescent light as the assumed scene
1899illumination for white balance.<wbr/> While the exact white balance
1900transforms are up to the camera device,<wbr/> they will approximately
1901match the CIE standard illuminant F4.<wbr/></p></span>
1902                  </li>
1903                  <li>
1904                    <span class="entry_type_enum_name">DAYLIGHT</span>
1905                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1906the camera device uses daylight light as the assumed scene
1907illumination for white balance.<wbr/> While the exact white balance
1908transforms are up to the camera device,<wbr/> they will approximately
1909match the CIE standard illuminant D65.<wbr/></p></span>
1910                  </li>
1911                  <li>
1912                    <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
1913                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1914the camera device uses cloudy daylight light as the assumed scene
1915illumination for white balance.<wbr/></p></span>
1916                  </li>
1917                  <li>
1918                    <span class="entry_type_enum_name">TWILIGHT</span>
1919                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1920the camera device uses twilight light as the assumed scene
1921illumination for white balance.<wbr/></p></span>
1922                  </li>
1923                  <li>
1924                    <span class="entry_type_enum_name">SHADE</span>
1925                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1926the camera device uses shade light as the assumed scene
1927illumination for white balance.<wbr/></p></span>
1928                  </li>
1929                </ul>
1930
1931            </td> <!-- entry_type -->
1932
1933            <td class="entry_description">
1934              <p>Whether AWB is currently setting the color
1935transform fields,<wbr/> and what its illumination target
1936is</p>
1937            </td>
1938
1939            <td class="entry_units">
1940            </td>
1941
1942            <td class="entry_range">
1943              <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
1944            </td>
1945
1946            <td class="entry_tags">
1947              <ul class="entry_tags">
1948                  <li><a href="#tag_BC">BC</a></li>
1949                  <li><a href="#tag_AWB">AWB</a></li>
1950              </ul>
1951            </td>
1952
1953          </tr>
1954          <tr class="entries_header">
1955            <th class="th_details" colspan="5">Details</th>
1956          </tr>
1957          <tr class="entry_cont">
1958            <td class="entry_details" colspan="5">
1959              <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
1960<p>When set to the ON mode,<wbr/> the camera device's auto white balance
1961routine is enabled,<wbr/> overriding the application's selected
1962<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
1963<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
1964<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
1965routine is disabled.<wbr/> The applicantion manually controls the white
1966balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
1967and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
1968<p>When set to any other modes,<wbr/> the camera device's auto white balance
1969routine is disabled.<wbr/> The camera device uses each particular illumination
1970target for white balance adjustment.<wbr/></p>
1971            </td>
1972          </tr>
1973
1974
1975          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1976           <!-- end of entry -->
1977        
1978                
1979          <tr class="entry" id="controls_android.control.awbRegions">
1980            <td class="entry_name" rowspan="3">
1981              android.<wbr/>control.<wbr/>awb<wbr/>Regions
1982            </td>
1983            <td class="entry_type">
1984                <span class="entry_type_name">int32</span>
1985                <span class="entry_type_container">x</span>
1986
1987                <span class="entry_type_array">
1988                  5 x area_count
1989                </span>
1990              <span class="entry_type_visibility"> [public]</span>
1991
1992
1993            </td> <!-- entry_type -->
1994
1995            <td class="entry_description">
1996              <p>List of areas to use for illuminant
1997estimation</p>
1998            </td>
1999
2000            <td class="entry_units">
2001            </td>
2002
2003            <td class="entry_range">
2004            </td>
2005
2006            <td class="entry_tags">
2007              <ul class="entry_tags">
2008                  <li><a href="#tag_BC">BC</a></li>
2009              </ul>
2010            </td>
2011
2012          </tr>
2013          <tr class="entries_header">
2014            <th class="th_details" colspan="5">Details</th>
2015          </tr>
2016          <tr class="entry_cont">
2017            <td class="entry_details" colspan="5">
2018              <p>Only used in AUTO mode.<wbr/></p>
2019<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
2020xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
2021specified coordinates.<wbr/></p>
2022<p>The coordinate system is based on the active pixel array,<wbr/>
2023with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
2024(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
2025<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
2026bottom-right pixel in the active pixel array.<wbr/> The weight
2027should be nonnegative.<wbr/></p>
2028<p>If all regions have 0 weight,<wbr/> then no specific metering area
2029needs to be used by the HAL.<wbr/> If the metering region is
2030outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
2031should ignore the sections outside the region and output the
2032used sections in the frame metadata</p>
2033            </td>
2034          </tr>
2035
2036
2037          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2038           <!-- end of entry -->
2039        
2040                
2041          <tr class="entry" id="controls_android.control.captureIntent">
2042            <td class="entry_name" rowspan="3">
2043              android.<wbr/>control.<wbr/>capture<wbr/>Intent
2044            </td>
2045            <td class="entry_type">
2046                <span class="entry_type_name entry_type_name_enum">byte</span>
2047
2048              <span class="entry_type_visibility"> [public]</span>
2049
2050                <ul class="entry_type_enum">
2051                  <li>
2052                    <span class="entry_type_enum_name">CUSTOM</span>
2053                    <span class="entry_type_enum_notes"><p>This request doesn't fall into the other
2054categories.<wbr/> Default to preview-like
2055behavior.<wbr/></p></span>
2056                  </li>
2057                  <li>
2058                    <span class="entry_type_enum_name">PREVIEW</span>
2059                    <span class="entry_type_enum_notes"><p>This request is for a preview-like usecase.<wbr/> The
2060precapture trigger may be used to start off a metering
2061w/<wbr/>flash sequence</p></span>
2062                  </li>
2063                  <li>
2064                    <span class="entry_type_enum_name">STILL_CAPTURE</span>
2065                    <span class="entry_type_enum_notes"><p>This request is for a still capture-type
2066usecase.<wbr/></p></span>
2067                  </li>
2068                  <li>
2069                    <span class="entry_type_enum_name">VIDEO_RECORD</span>
2070                    <span class="entry_type_enum_notes"><p>This request is for a video recording
2071usecase.<wbr/></p></span>
2072                  </li>
2073                  <li>
2074                    <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span>
2075                    <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
2076image while recording video) usecase</p></span>
2077                  </li>
2078                  <li>
2079                    <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
2080                    <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
2081application will stream full-resolution images and
2082reprocess one or several later for a final
2083capture</p></span>
2084                  </li>
2085                </ul>
2086
2087            </td> <!-- entry_type -->
2088
2089            <td class="entry_description">
2090              <p>Information to the camera device 3A (auto-exposure,<wbr/>
2091auto-focus,<wbr/> auto-white balance) routines about the purpose
2092of this capture,<wbr/> to help the camera device to decide optimal 3A
2093strategy.<wbr/></p>
2094            </td>
2095
2096            <td class="entry_units">
2097            </td>
2098
2099            <td class="entry_range">
2100              <p>All must be supported</p>
2101            </td>
2102
2103            <td class="entry_tags">
2104              <ul class="entry_tags">
2105                  <li><a href="#tag_BC">BC</a></li>
2106              </ul>
2107            </td>
2108
2109          </tr>
2110          <tr class="entries_header">
2111            <th class="th_details" colspan="5">Details</th>
2112          </tr>
2113          <tr class="entry_cont">
2114            <td class="entry_details" colspan="5">
2115              <p>This control is only effective if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code>
2116and any 3A routine is active.<wbr/></p>
2117            </td>
2118          </tr>
2119
2120
2121          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2122           <!-- end of entry -->
2123        
2124                
2125          <tr class="entry" id="controls_android.control.effectMode">
2126            <td class="entry_name" rowspan="1">
2127              android.<wbr/>control.<wbr/>effect<wbr/>Mode
2128            </td>
2129            <td class="entry_type">
2130                <span class="entry_type_name entry_type_name_enum">byte</span>
2131
2132              <span class="entry_type_visibility"> [public]</span>
2133
2134                <ul class="entry_type_enum">
2135                  <li>
2136                    <span class="entry_type_enum_name">OFF</span>
2137                  </li>
2138                  <li>
2139                    <span class="entry_type_enum_name">MONO</span>
2140                    <span class="entry_type_enum_optional">optional</span>
2141                  </li>
2142                  <li>
2143                    <span class="entry_type_enum_name">NEGATIVE</span>
2144                    <span class="entry_type_enum_optional">optional</span>
2145                  </li>
2146                  <li>
2147                    <span class="entry_type_enum_name">SOLARIZE</span>
2148                    <span class="entry_type_enum_optional">optional</span>
2149                  </li>
2150                  <li>
2151                    <span class="entry_type_enum_name">SEPIA</span>
2152                    <span class="entry_type_enum_optional">optional</span>
2153                  </li>
2154                  <li>
2155                    <span class="entry_type_enum_name">POSTERIZE</span>
2156                    <span class="entry_type_enum_optional">optional</span>
2157                  </li>
2158                  <li>
2159                    <span class="entry_type_enum_name">WHITEBOARD</span>
2160                    <span class="entry_type_enum_optional">optional</span>
2161                  </li>
2162                  <li>
2163                    <span class="entry_type_enum_name">BLACKBOARD</span>
2164                    <span class="entry_type_enum_optional">optional</span>
2165                  </li>
2166                  <li>
2167                    <span class="entry_type_enum_name">AQUA</span>
2168                    <span class="entry_type_enum_optional">optional</span>
2169                  </li>
2170                </ul>
2171
2172            </td> <!-- entry_type -->
2173
2174            <td class="entry_description">
2175              <p>Whether any special color effect is in use.<wbr/>
2176Only used if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</p>
2177            </td>
2178
2179            <td class="entry_units">
2180            </td>
2181
2182            <td class="entry_range">
2183              <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
2184            </td>
2185
2186            <td class="entry_tags">
2187              <ul class="entry_tags">
2188                  <li><a href="#tag_BC">BC</a></li>
2189              </ul>
2190            </td>
2191
2192          </tr>
2193
2194
2195          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2196           <!-- end of entry -->
2197        
2198                
2199          <tr class="entry" id="controls_android.control.mode">
2200            <td class="entry_name" rowspan="3">
2201              android.<wbr/>control.<wbr/>mode
2202            </td>
2203            <td class="entry_type">
2204                <span class="entry_type_name entry_type_name_enum">byte</span>
2205
2206              <span class="entry_type_visibility"> [public]</span>
2207
2208                <ul class="entry_type_enum">
2209                  <li>
2210                    <span class="entry_type_enum_name">OFF</span>
2211                    <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
2212routines are disabled,<wbr/> no other settings in
2213android.<wbr/>control.<wbr/>* have any effect</p></span>
2214                  </li>
2215                  <li>
2216                    <span class="entry_type_enum_name">AUTO</span>
2217                    <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
2218Manual control of capture parameters is disabled.<wbr/> All
2219controls in android.<wbr/>control.<wbr/>* besides sceneMode take
2220effect</p></span>
2221                  </li>
2222                  <li>
2223                    <span class="entry_type_enum_name">USE_SCENE_MODE</span>
2224                    <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
2225control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
2226controls; the HAL must ignore those settings while
2227USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
2228scene mode).<wbr/> Other control entries are still active.<wbr/>
2229This setting can only be used if availableSceneModes !=
2230UNSUPPORTED</p></span>
2231                  </li>
2232                </ul>
2233
2234            </td> <!-- entry_type -->
2235
2236            <td class="entry_description">
2237              <p>Overall mode of 3A control
2238routines</p>
2239            </td>
2240
2241            <td class="entry_units">
2242            </td>
2243
2244            <td class="entry_range">
2245              <p>all must be supported</p>
2246            </td>
2247
2248            <td class="entry_tags">
2249              <ul class="entry_tags">
2250                  <li><a href="#tag_BC">BC</a></li>
2251              </ul>
2252            </td>
2253
2254          </tr>
2255          <tr class="entries_header">
2256            <th class="th_details" colspan="5">Details</th>
2257          </tr>
2258          <tr class="entry_cont">
2259            <td class="entry_details" colspan="5">
2260              <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
2261by the camera device is disabled.<wbr/> The application must set the fields for
2262capture parameters itself.<wbr/></p>
2263<p>When set to AUTO,<wbr/> the individual algorithm controls in
2264android.<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>
2265<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
2266android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
2267one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
2268as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
2269<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
2270            </td>
2271          </tr>
2272
2273
2274          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2275           <!-- end of entry -->
2276        
2277                
2278          <tr class="entry" id="controls_android.control.sceneMode">
2279            <td class="entry_name" rowspan="1">
2280              android.<wbr/>control.<wbr/>scene<wbr/>Mode
2281            </td>
2282            <td class="entry_type">
2283                <span class="entry_type_name entry_type_name_enum">byte</span>
2284
2285              <span class="entry_type_visibility"> [public]</span>
2286
2287                <ul class="entry_type_enum">
2288                  <li>
2289                    <span class="entry_type_enum_name">UNSUPPORTED</span>
2290                    <span class="entry_type_enum_value">0</span>
2291                  </li>
2292                  <li>
2293                    <span class="entry_type_enum_name">FACE_PRIORITY</span>
2294                    <span class="entry_type_enum_notes"><p>if face detection support exists Use face
2295detection data to drive 3A routines.<wbr/> If face detection
2296statistics are disabled,<wbr/> should still operate correctly
2297(but not return face detection statistics to the
2298framework).<wbr/></p>
2299<p>Unlike the other scene modes,<wbr/> aeMode,<wbr/> awbMode,<wbr/> and afMode
2300remain active when FACE_<wbr/>PRIORITY is set.<wbr/> This is due to
2301compatibility concerns with the old camera
2302API</p></span>
2303                  </li>
2304                  <li>
2305                    <span class="entry_type_enum_name">ACTION</span>
2306                    <span class="entry_type_enum_optional">optional</span>
2307                  </li>
2308                  <li>
2309                    <span class="entry_type_enum_name">PORTRAIT</span>
2310                    <span class="entry_type_enum_optional">optional</span>
2311                  </li>
2312                  <li>
2313                    <span class="entry_type_enum_name">LANDSCAPE</span>
2314                    <span class="entry_type_enum_optional">optional</span>
2315                  </li>
2316                  <li>
2317                    <span class="entry_type_enum_name">NIGHT</span>
2318                    <span class="entry_type_enum_optional">optional</span>
2319                  </li>
2320                  <li>
2321                    <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
2322                    <span class="entry_type_enum_optional">optional</span>
2323                  </li>
2324                  <li>
2325                    <span class="entry_type_enum_name">THEATRE</span>
2326                    <span class="entry_type_enum_optional">optional</span>
2327                  </li>
2328                  <li>
2329                    <span class="entry_type_enum_name">BEACH</span>
2330                    <span class="entry_type_enum_optional">optional</span>
2331                  </li>
2332                  <li>
2333                    <span class="entry_type_enum_name">SNOW</span>
2334                    <span class="entry_type_enum_optional">optional</span>
2335                  </li>
2336                  <li>
2337                    <span class="entry_type_enum_name">SUNSET</span>
2338                    <span class="entry_type_enum_optional">optional</span>
2339                  </li>
2340                  <li>
2341                    <span class="entry_type_enum_name">STEADYPHOTO</span>
2342                    <span class="entry_type_enum_optional">optional</span>
2343                  </li>
2344                  <li>
2345                    <span class="entry_type_enum_name">FIREWORKS</span>
2346                    <span class="entry_type_enum_optional">optional</span>
2347                  </li>
2348                  <li>
2349                    <span class="entry_type_enum_name">SPORTS</span>
2350                    <span class="entry_type_enum_optional">optional</span>
2351                  </li>
2352                  <li>
2353                    <span class="entry_type_enum_name">PARTY</span>
2354                    <span class="entry_type_enum_optional">optional</span>
2355                  </li>
2356                  <li>
2357                    <span class="entry_type_enum_name">CANDLELIGHT</span>
2358                    <span class="entry_type_enum_optional">optional</span>
2359                  </li>
2360                  <li>
2361                    <span class="entry_type_enum_name">BARCODE</span>
2362                    <span class="entry_type_enum_optional">optional</span>
2363                  </li>
2364                </ul>
2365
2366            </td> <!-- entry_type -->
2367
2368            <td class="entry_description">
2369              <p>Which scene mode is active when
2370<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = SCENE_<wbr/>MODE</p>
2371            </td>
2372
2373            <td class="entry_units">
2374            </td>
2375
2376            <td class="entry_range">
2377              <p><a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a></p>
2378            </td>
2379
2380            <td class="entry_tags">
2381              <ul class="entry_tags">
2382                  <li><a href="#tag_BC">BC</a></li>
2383              </ul>
2384            </td>
2385
2386          </tr>
2387
2388
2389          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2390           <!-- end of entry -->
2391        
2392                
2393          <tr class="entry" id="controls_android.control.videoStabilizationMode">
2394            <td class="entry_name" rowspan="3">
2395              android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
2396            </td>
2397            <td class="entry_type">
2398                <span class="entry_type_name entry_type_name_enum">byte</span>
2399
2400              <span class="entry_type_visibility"> [public as boolean]</span>
2401
2402                <ul class="entry_type_enum">
2403                  <li>
2404                    <span class="entry_type_enum_name">OFF</span>
2405                  </li>
2406                  <li>
2407                    <span class="entry_type_enum_name">ON</span>
2408                  </li>
2409                </ul>
2410
2411            </td> <!-- entry_type -->
2412
2413            <td class="entry_description">
2414              <p>Whether video stabilization is
2415active</p>
2416            </td>
2417
2418            <td class="entry_units">
2419            </td>
2420
2421            <td class="entry_range">
2422            </td>
2423
2424            <td class="entry_tags">
2425              <ul class="entry_tags">
2426                  <li><a href="#tag_BC">BC</a></li>
2427              </ul>
2428            </td>
2429
2430          </tr>
2431          <tr class="entries_header">
2432            <th class="th_details" colspan="5">Details</th>
2433          </tr>
2434          <tr class="entry_cont">
2435            <td class="entry_details" colspan="5">
2436              <p>If enabled,<wbr/> video stabilization can modify the
2437<a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> to keep the video stream
2438stabilized</p>
2439            </td>
2440          </tr>
2441
2442
2443          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2444           <!-- end of entry -->
2445        
2446        
2447
2448      <!-- end of kind -->
2449      </tbody>
2450      <tr><td colspan="6" class="kind">static</td></tr>
2451
2452      <thead class="entries_header">
2453        <tr>
2454          <th class="th_name">Property Name</th>
2455          <th class="th_type">Type</th>
2456          <th class="th_description">Description</th>
2457          <th class="th_units">Units</th>
2458          <th class="th_range">Range</th>
2459          <th class="th_tags">Tags</th>
2460        </tr>
2461      </thead>
2462
2463      <tbody>
2464
2465        
2466
2467        
2468
2469        
2470
2471        
2472
2473                
2474          <tr class="entry" id="static_android.control.aeAvailableAntibandingModes">
2475            <td class="entry_name" rowspan="3">
2476              android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes
2477            </td>
2478            <td class="entry_type">
2479                <span class="entry_type_name">byte</span>
2480                <span class="entry_type_container">x</span>
2481
2482                <span class="entry_type_array">
2483                  n
2484                </span>
2485              <span class="entry_type_visibility"> [public]</span>
2486                <div class="entry_type_notes">list of enums</div>
2487
2488
2489            </td> <!-- entry_type -->
2490
2491            <td class="entry_description">
2492              <p>The set of auto-exposure antibanding modes that are
2493supported by this camera device.<wbr/></p>
2494            </td>
2495
2496            <td class="entry_units">
2497            </td>
2498
2499            <td class="entry_range">
2500            </td>
2501
2502            <td class="entry_tags">
2503            </td>
2504
2505          </tr>
2506          <tr class="entries_header">
2507            <th class="th_details" colspan="5">Details</th>
2508          </tr>
2509          <tr class="entry_cont">
2510            <td class="entry_details" colspan="5">
2511              <p>Not all of the auto-exposure anti-banding modes may be
2512supported by a given camera device.<wbr/> This field lists the
2513valid anti-banding modes that the application may request
2514for this camera device; they must include AUTO.<wbr/></p>
2515            </td>
2516          </tr>
2517
2518
2519          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2520           <!-- end of entry -->
2521        
2522                
2523          <tr class="entry" id="static_android.control.aeAvailableModes">
2524            <td class="entry_name" rowspan="3">
2525              android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes
2526            </td>
2527            <td class="entry_type">
2528                <span class="entry_type_name">byte</span>
2529                <span class="entry_type_container">x</span>
2530
2531                <span class="entry_type_array">
2532                  n
2533                </span>
2534              <span class="entry_type_visibility"> [public]</span>
2535                <div class="entry_type_notes">list of enums</div>
2536
2537
2538            </td> <!-- entry_type -->
2539
2540            <td class="entry_description">
2541              <p>The set of auto-exposure modes that are supported by this
2542camera device.<wbr/></p>
2543            </td>
2544
2545            <td class="entry_units">
2546            </td>
2547
2548            <td class="entry_range">
2549            </td>
2550
2551            <td class="entry_tags">
2552              <ul class="entry_tags">
2553                  <li><a href="#tag_BC">BC</a></li>
2554              </ul>
2555            </td>
2556
2557          </tr>
2558          <tr class="entries_header">
2559            <th class="th_details" colspan="5">Details</th>
2560          </tr>
2561          <tr class="entry_cont">
2562            <td class="entry_details" colspan="5">
2563              <p>Not all the auto-exposure modes may be supported by a
2564given camera device,<wbr/> especially if no flash unit is
2565available.<wbr/> This entry lists the valid modes for
2566<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> for this camera device.<wbr/></p>
2567<p>All camera devices support ON,<wbr/> and all camera devices with
2568flash units support ON_<wbr/>AUTO_<wbr/>FLASH and
2569ON_<wbr/>ALWAYS_<wbr/>FLASH.<wbr/></p>
2570<p>Full-capability camera devices always support OFF mode,<wbr/>
2571which enables application control of camera exposure time,<wbr/>
2572sensitivity,<wbr/> and frame duration.<wbr/></p>
2573            </td>
2574          </tr>
2575
2576
2577          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2578           <!-- end of entry -->
2579        
2580                
2581          <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges">
2582            <td class="entry_name" rowspan="1">
2583              android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges
2584            </td>
2585            <td class="entry_type">
2586                <span class="entry_type_name">int32</span>
2587                <span class="entry_type_container">x</span>
2588
2589                <span class="entry_type_array">
2590                  2 x n
2591                </span>
2592              <span class="entry_type_visibility"> [public]</span>
2593                <div class="entry_type_notes">list of pairs of frame rates</div>
2594
2595
2596            </td> <!-- entry_type -->
2597
2598            <td class="entry_description">
2599              <p>List of frame rate ranges supported by the
2600AE algorithm/<wbr/>hardware</p>
2601            </td>
2602
2603            <td class="entry_units">
2604            </td>
2605
2606            <td class="entry_range">
2607            </td>
2608
2609            <td class="entry_tags">
2610            </td>
2611
2612          </tr>
2613
2614
2615          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2616           <!-- end of entry -->
2617        
2618                
2619          <tr class="entry" id="static_android.control.aeCompensationRange">
2620            <td class="entry_name" rowspan="1">
2621              android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range
2622            </td>
2623            <td class="entry_type">
2624                <span class="entry_type_name">int32</span>
2625                <span class="entry_type_container">x</span>
2626
2627                <span class="entry_type_array">
2628                  2
2629                </span>
2630              <span class="entry_type_visibility"> [public]</span>
2631
2632
2633            </td> <!-- entry_type -->
2634
2635            <td class="entry_description">
2636              <p>Maximum and minimum exposure compensation
2637setting,<wbr/> in counts of
2638android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step<wbr/>Size</p>
2639            </td>
2640
2641            <td class="entry_units">
2642            </td>
2643
2644            <td class="entry_range">
2645              <p>At least (-2,<wbr/>2)/<wbr/>(exp compensation step
2646size)</p>
2647            </td>
2648
2649            <td class="entry_tags">
2650              <ul class="entry_tags">
2651                  <li><a href="#tag_BC">BC</a></li>
2652              </ul>
2653            </td>
2654
2655          </tr>
2656
2657
2658          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2659           <!-- end of entry -->
2660        
2661                
2662          <tr class="entry" id="static_android.control.aeCompensationStep">
2663            <td class="entry_name" rowspan="1">
2664              android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step
2665            </td>
2666            <td class="entry_type">
2667                <span class="entry_type_name">rational</span>
2668
2669              <span class="entry_type_visibility"> [public]</span>
2670
2671
2672            </td> <!-- entry_type -->
2673
2674            <td class="entry_description">
2675              <p>Smallest step by which exposure compensation
2676can be changed</p>
2677            </td>
2678
2679            <td class="entry_units">
2680            </td>
2681
2682            <td class="entry_range">
2683              <p>&lt;= 1/<wbr/>2</p>
2684            </td>
2685
2686            <td class="entry_tags">
2687              <ul class="entry_tags">
2688                  <li><a href="#tag_BC">BC</a></li>
2689              </ul>
2690            </td>
2691
2692          </tr>
2693
2694
2695          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2696           <!-- end of entry -->
2697        
2698                
2699          <tr class="entry" id="static_android.control.afAvailableModes">
2700            <td class="entry_name" rowspan="3">
2701              android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes
2702            </td>
2703            <td class="entry_type">
2704                <span class="entry_type_name">byte</span>
2705                <span class="entry_type_container">x</span>
2706
2707                <span class="entry_type_array">
2708                  n
2709                </span>
2710              <span class="entry_type_visibility"> [public]</span>
2711                <div class="entry_type_notes">List of enums</div>
2712
2713
2714            </td> <!-- entry_type -->
2715
2716            <td class="entry_description">
2717              <p>List of AF modes that can be
2718selected with <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
2719            </td>
2720
2721            <td class="entry_units">
2722            </td>
2723
2724            <td class="entry_range">
2725            </td>
2726
2727            <td class="entry_tags">
2728              <ul class="entry_tags">
2729                  <li><a href="#tag_BC">BC</a></li>
2730              </ul>
2731            </td>
2732
2733          </tr>
2734          <tr class="entries_header">
2735            <th class="th_details" colspan="5">Details</th>
2736          </tr>
2737          <tr class="entry_cont">
2738            <td class="entry_details" colspan="5">
2739              <p>Not all the auto-focus modes may be supported by a
2740given camera device.<wbr/> This entry lists the valid modes for
2741<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> for this camera device.<wbr/></p>
2742<p>All camera devices will support OFF mode,<wbr/> and all camera devices with
2743adjustable 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>)
2744will support AUTO mode.<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.availableEffects">
2754            <td class="entry_name" rowspan="1">
2755              android.<wbr/>control.<wbr/>available<wbr/>Effects
2756            </td>
2757            <td class="entry_type">
2758                <span class="entry_type_name">byte</span>
2759                <span class="entry_type_container">x</span>
2760
2761                <span class="entry_type_array">
2762                  n
2763                </span>
2764              <span class="entry_type_visibility"> [public]</span>
2765                <div class="entry_type_notes">list of enums</div>
2766
2767
2768            </td> <!-- entry_type -->
2769
2770            <td class="entry_description">
2771              <p>what subset of the full color effect enum
2772list is supported</p>
2773            </td>
2774
2775            <td class="entry_units">
2776            </td>
2777
2778            <td class="entry_range">
2779              <p>OFF must be listed</p>
2780            </td>
2781
2782            <td class="entry_tags">
2783              <ul class="entry_tags">
2784                  <li><a href="#tag_BC">BC</a></li>
2785              </ul>
2786            </td>
2787
2788          </tr>
2789
2790
2791          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2792           <!-- end of entry -->
2793        
2794                
2795          <tr class="entry" id="static_android.control.availableSceneModes">
2796            <td class="entry_name" rowspan="1">
2797              android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes
2798            </td>
2799            <td class="entry_type">
2800                <span class="entry_type_name">byte</span>
2801                <span class="entry_type_container">x</span>
2802
2803                <span class="entry_type_array">
2804                  n
2805                </span>
2806              <span class="entry_type_visibility"> [public]</span>
2807                <div class="entry_type_notes">list of enums from android.<wbr/>control.<wbr/>scene<wbr/>Mode,<wbr/> plus UNSUPPORTED to indicate no scene modes are supported</div>
2808
2809
2810            </td> <!-- entry_type -->
2811
2812            <td class="entry_description">
2813              <p>what subset of the scene mode enum list is
2814supported.<wbr/></p>
2815            </td>
2816
2817            <td class="entry_units">
2818            </td>
2819
2820            <td class="entry_range">
2821              <p>SCENE_<wbr/>MODE_<wbr/>FACE_<wbr/>PRIORITY must be supported if face
2822detection is supported</p>
2823            </td>
2824
2825            <td class="entry_tags">
2826              <ul class="entry_tags">
2827                  <li><a href="#tag_BC">BC</a></li>
2828              </ul>
2829            </td>
2830
2831          </tr>
2832
2833
2834          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2835           <!-- end of entry -->
2836        
2837                
2838          <tr class="entry" id="static_android.control.availableVideoStabilizationModes">
2839            <td class="entry_name" rowspan="1">
2840              android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes
2841            </td>
2842            <td class="entry_type">
2843                <span class="entry_type_name">byte</span>
2844                <span class="entry_type_container">x</span>
2845
2846                <span class="entry_type_array">
2847                  n
2848                </span>
2849              <span class="entry_type_visibility"> [public]</span>
2850                <div class="entry_type_notes">List of enums.<wbr/></div>
2851
2852
2853            </td> <!-- entry_type -->
2854
2855            <td class="entry_description">
2856              <p>List of video stabilization modes that can
2857be supported</p>
2858            </td>
2859
2860            <td class="entry_units">
2861            </td>
2862
2863            <td class="entry_range">
2864              <p>OFF must be included</p>
2865            </td>
2866
2867            <td class="entry_tags">
2868              <ul class="entry_tags">
2869                  <li><a href="#tag_BC">BC</a></li>
2870              </ul>
2871            </td>
2872
2873          </tr>
2874
2875
2876          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2877           <!-- end of entry -->
2878        
2879                
2880          <tr class="entry" id="static_android.control.awbAvailableModes">
2881            <td class="entry_name" rowspan="3">
2882              android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes
2883            </td>
2884            <td class="entry_type">
2885                <span class="entry_type_name">byte</span>
2886                <span class="entry_type_container">x</span>
2887
2888                <span class="entry_type_array">
2889                  n
2890                </span>
2891              <span class="entry_type_visibility"> [public]</span>
2892                <div class="entry_type_notes">List of enums</div>
2893
2894
2895            </td> <!-- entry_type -->
2896
2897            <td class="entry_description">
2898              <p>The set of auto-white-balance modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>)
2899that are supported by this camera device.<wbr/></p>
2900            </td>
2901
2902            <td class="entry_units">
2903            </td>
2904
2905            <td class="entry_range">
2906            </td>
2907
2908            <td class="entry_tags">
2909              <ul class="entry_tags">
2910                  <li><a href="#tag_BC">BC</a></li>
2911              </ul>
2912            </td>
2913
2914          </tr>
2915          <tr class="entries_header">
2916            <th class="th_details" colspan="5">Details</th>
2917          </tr>
2918          <tr class="entry_cont">
2919            <td class="entry_details" colspan="5">
2920              <p>Not all the auto-white-balance modes may be supported by a
2921given camera device.<wbr/> This entry lists the valid modes for
2922<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> for this camera device.<wbr/></p>
2923<p>All camera devices will support ON mode.<wbr/></p>
2924<p>Full-capability camera devices will always support OFF mode,<wbr/>
2925which enables application control of white balance,<wbr/> by using
2926<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>
2927            </td>
2928          </tr>
2929
2930
2931          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2932           <!-- end of entry -->
2933        
2934                
2935          <tr class="entry" id="static_android.control.maxRegions">
2936            <td class="entry_name" rowspan="1">
2937              android.<wbr/>control.<wbr/>max<wbr/>Regions
2938            </td>
2939            <td class="entry_type">
2940                <span class="entry_type_name">int32</span>
2941
2942              <span class="entry_type_visibility"> [public]</span>
2943
2944
2945            </td> <!-- entry_type -->
2946
2947            <td class="entry_description">
2948              <p>For AE,<wbr/> AWB,<wbr/> and AF,<wbr/> how many individual
2949regions can be listed for metering?</p>
2950            </td>
2951
2952            <td class="entry_units">
2953            </td>
2954
2955            <td class="entry_range">
2956              <p>&gt;= 1</p>
2957            </td>
2958
2959            <td class="entry_tags">
2960              <ul class="entry_tags">
2961                  <li><a href="#tag_BC">BC</a></li>
2962              </ul>
2963            </td>
2964
2965          </tr>
2966
2967
2968          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2969           <!-- end of entry -->
2970        
2971                
2972          <tr class="entry" id="static_android.control.sceneModeOverrides">
2973            <td class="entry_name" rowspan="3">
2974              android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides
2975            </td>
2976            <td class="entry_type">
2977                <span class="entry_type_name">byte</span>
2978                <span class="entry_type_container">x</span>
2979
2980                <span class="entry_type_array">
2981                  3 x length(availableSceneModes)
2982                </span>
2983              <span class="entry_type_visibility"> [system]</span>
2984
2985
2986            </td> <!-- entry_type -->
2987
2988            <td class="entry_description">
2989              <p>List of AE,<wbr/> AWB,<wbr/> and AF modes to use for
2990each available scene mode</p>
2991            </td>
2992
2993            <td class="entry_units">
2994            </td>
2995
2996            <td class="entry_range">
2997              <p>For each listed scene mode,<wbr/> lists the aeMode,<wbr/>
2998awbMode,<wbr/> and afMode that the HAL wants to use for that
2999scene mode.<wbr/></p>
3000<p>For each entry,<wbr/> the order is {aeMode,<wbr/> awbMode,<wbr/> afMode} in
3001order of increasing index</p>
3002            </td>
3003
3004            <td class="entry_tags">
3005              <ul class="entry_tags">
3006                  <li><a href="#tag_BC">BC</a></li>
3007              </ul>
3008            </td>
3009
3010          </tr>
3011          <tr class="entries_header">
3012            <th class="th_details" colspan="5">Details</th>
3013          </tr>
3014          <tr class="entry_cont">
3015            <td class="entry_details" colspan="5">
3016              <p>When a scene mode is enabled,<wbr/> the HAL is expected
3017to override aeMode,<wbr/> awbMode,<wbr/> and afMode with its
3018preferred settings for that scene mode.<wbr/></p>
3019<p>To simplify communication with old camera API applications,<wbr/>
3020the service wants this override list in the static metadata.<wbr/>
3021The order of this list matches that of availableSceneModes,<wbr/>
3022with 3 entires for each scene mode.<wbr/>  The overrides listed
3023for SCENE_<wbr/>MODE_<wbr/>FACE_<wbr/>PRIORITY are ignored,<wbr/> since for that
3024mode,<wbr/> the application-set aeMode,<wbr/> awbMode,<wbr/> and afMode are
3025used instead,<wbr/> like they are when <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
3026AUTO.<wbr/></p>
3027<p>It is recommended that for FACE_<wbr/>PRIORITY,<wbr/> the overrides
3028should be set to 0.<wbr/> As an example,<wbr/> if availableSceneModes is
3029{ FACE_<wbr/>PRIORITY,<wbr/> ACTION,<wbr/> NIGHT },<wbr/> then the service expects
3030this field to have 9 entries; for example { 0 ,<wbr/> 0,<wbr/> 0,<wbr/>
3031ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> AUTO,<wbr/> CONTINUOUS_<wbr/>PICTURE,<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
3032INCANDESCENT,<wbr/> AUTO }</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
3042      <!-- end of kind -->
3043      </tbody>
3044      <tr><td colspan="6" class="kind">dynamic</td></tr>
3045
3046      <thead class="entries_header">
3047        <tr>
3048          <th class="th_name">Property Name</th>
3049          <th class="th_type">Type</th>
3050          <th class="th_description">Description</th>
3051          <th class="th_units">Units</th>
3052          <th class="th_range">Range</th>
3053          <th class="th_tags">Tags</th>
3054        </tr>
3055      </thead>
3056
3057      <tbody>
3058
3059        
3060
3061        
3062
3063        
3064
3065        
3066
3067                
3068          <tr class="entry" id="dynamic_android.control.aePrecaptureId">
3069            <td class="entry_name" rowspan="3">
3070              android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Id
3071            </td>
3072            <td class="entry_type">
3073                <span class="entry_type_name">int32</span>
3074
3075              <span class="entry_type_visibility"> [hidden]</span>
3076
3077
3078            </td> <!-- entry_type -->
3079
3080            <td class="entry_description">
3081              <p>The ID sent with the latest
3082CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING call</p>
3083            </td>
3084
3085            <td class="entry_units">
3086            </td>
3087
3088            <td class="entry_range">
3089            </td>
3090
3091            <td class="entry_tags">
3092            </td>
3093
3094          </tr>
3095          <tr class="entries_header">
3096            <th class="th_details" colspan="5">Details</th>
3097          </tr>
3098          <tr class="entry_cont">
3099            <td class="entry_details" colspan="5">
3100              <p>Must be 0 if no
3101CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING trigger received yet
3102by HAL.<wbr/> Always updated even if AE algorithm ignores the
3103trigger</p>
3104            </td>
3105          </tr>
3106
3107
3108          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3109           <!-- end of entry -->
3110        
3111                
3112          <tr class="entry" id="dynamic_android.control.aeMode">
3113            <td class="entry_name" rowspan="3">
3114              android.<wbr/>control.<wbr/>ae<wbr/>Mode
3115            </td>
3116            <td class="entry_type">
3117                <span class="entry_type_name entry_type_name_enum">byte</span>
3118
3119              <span class="entry_type_visibility"> [public]</span>
3120
3121                <ul class="entry_type_enum">
3122                  <li>
3123                    <span class="entry_type_enum_name">OFF</span>
3124                    <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
3125the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3126<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
3127<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
3128device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
3129a flash unit for this camera device.<wbr/></p></span>
3130                  </li>
3131                  <li>
3132                    <span class="entry_type_enum_name">ON</span>
3133                    <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
3134with no flash control.<wbr/> The application's values for
3135<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3136<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3137<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
3138application has control over the various
3139android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
3140                  </li>
3141                  <li>
3142                    <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
3143                    <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3144the camera's flash unit,<wbr/> firing it in low-light
3145conditions.<wbr/> The flash may be fired during a
3146precapture sequence (triggered by
3147<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
3148for captures for which the
3149<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3150STILL_<wbr/>CAPTURE</p></span>
3151                  </li>
3152                  <li>
3153                    <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
3154                    <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3155the camera's flash unit,<wbr/> always firing it for still
3156captures.<wbr/> The flash may be fired during a precapture
3157sequence (triggered by
3158<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
3159be fired for captures for which the
3160<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3161STILL_<wbr/>CAPTURE</p></span>
3162                  </li>
3163                  <li>
3164                    <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
3165                    <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
3166reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
3167a red eye reduction flash will fire during the
3168precapture sequence.<wbr/></p></span>
3169                  </li>
3170                </ul>
3171
3172            </td> <!-- entry_type -->
3173
3174            <td class="entry_description">
3175              <p>The desired mode for the camera device's
3176auto-exposure routine.<wbr/></p>
3177            </td>
3178
3179            <td class="entry_units">
3180            </td>
3181
3182            <td class="entry_range">
3183              <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
3184            </td>
3185
3186            <td class="entry_tags">
3187              <ul class="entry_tags">
3188                  <li><a href="#tag_BC">BC</a></li>
3189              </ul>
3190            </td>
3191
3192          </tr>
3193          <tr class="entries_header">
3194            <th class="th_details" colspan="5">Details</th>
3195          </tr>
3196          <tr class="entry_cont">
3197            <td class="entry_details" colspan="5">
3198              <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
3199AUTO.<wbr/></p>
3200<p>When set to any of the ON modes,<wbr/> the camera device's
3201auto-exposure routine is enabled,<wbr/> overriding the
3202application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
3203and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3204<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3205<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
3206is selected,<wbr/> the camera device's flash unit controls are
3207also overridden.<wbr/></p>
3208<p>The FLASH modes are only available if the camera device
3209has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
3210<p>If flash TORCH mode is desired,<wbr/> this field must be set to
3211ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
3212<p>When set to any of the ON modes,<wbr/> the values chosen by the
3213camera device auto-exposure routine for the overridden
3214fields for a given capture will be available in its
3215CaptureResult.<wbr/></p>
3216            </td>
3217          </tr>
3218
3219
3220          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3221           <!-- end of entry -->
3222        
3223                
3224          <tr class="entry" id="dynamic_android.control.aeRegions">
3225            <td class="entry_name" rowspan="3">
3226              android.<wbr/>control.<wbr/>ae<wbr/>Regions
3227            </td>
3228            <td class="entry_type">
3229                <span class="entry_type_name">int32</span>
3230                <span class="entry_type_container">x</span>
3231
3232                <span class="entry_type_array">
3233                  5 x area_count
3234                </span>
3235              <span class="entry_type_visibility"> [public]</span>
3236
3237
3238            </td> <!-- entry_type -->
3239
3240            <td class="entry_description">
3241              <p>List of areas to use for
3242metering</p>
3243            </td>
3244
3245            <td class="entry_units">
3246            </td>
3247
3248            <td class="entry_range">
3249            </td>
3250
3251            <td class="entry_tags">
3252              <ul class="entry_tags">
3253                  <li><a href="#tag_BC">BC</a></li>
3254              </ul>
3255            </td>
3256
3257          </tr>
3258          <tr class="entries_header">
3259            <th class="th_details" colspan="5">Details</th>
3260          </tr>
3261          <tr class="entry_cont">
3262            <td class="entry_details" colspan="5">
3263              <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
3264xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
3265specified coordinates.<wbr/></p>
3266<p>The coordinate system is based on the active pixel array,<wbr/>
3267with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
3268(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3269<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
3270bottom-right pixel in the active pixel array.<wbr/> The weight
3271should be nonnegative.<wbr/></p>
3272<p>If all regions have 0 weight,<wbr/> then no specific metering area
3273needs to be used by the HAL.<wbr/> If the metering region is
3274outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
3275should ignore the sections outside the region and output the
3276used sections in the frame metadata</p>
3277            </td>
3278          </tr>
3279
3280
3281          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3282           <!-- end of entry -->
3283        
3284                
3285          <tr class="entry" id="dynamic_android.control.aeState">
3286            <td class="entry_name" rowspan="3">
3287              android.<wbr/>control.<wbr/>ae<wbr/>State
3288            </td>
3289            <td class="entry_type">
3290                <span class="entry_type_name entry_type_name_enum">byte</span>
3291
3292              <span class="entry_type_visibility"> [public]</span>
3293
3294                <ul class="entry_type_enum">
3295                  <li>
3296                    <span class="entry_type_enum_name">INACTIVE</span>
3297                    <span class="entry_type_enum_notes"><p>AE is off or recently reset.<wbr/> When a camera device is opened,<wbr/> it starts in
3298this state.<wbr/></p></span>
3299                  </li>
3300                  <li>
3301                    <span class="entry_type_enum_name">SEARCHING</span>
3302                    <span class="entry_type_enum_notes"><p>AE doesn't yet have a good set of control values
3303for the current scene.<wbr/></p></span>
3304                  </li>
3305                  <li>
3306                    <span class="entry_type_enum_name">CONVERGED</span>
3307                    <span class="entry_type_enum_notes"><p>AE has a good set of control values for the
3308current scene.<wbr/></p></span>
3309                  </li>
3310                  <li>
3311                    <span class="entry_type_enum_name">LOCKED</span>
3312                    <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
3313                  </li>
3314                  <li>
3315                    <span class="entry_type_enum_name">FLASH_REQUIRED</span>
3316                    <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
3317needs to be fired for good quality still
3318capture.<wbr/></p></span>
3319                  </li>
3320                  <li>
3321                    <span class="entry_type_enum_name">PRECAPTURE</span>
3322                    <span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence
3323(through the <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> START),<wbr/>
3324and is currently executing it.<wbr/> Once PRECAPTURE
3325completes,<wbr/> AE will transition to CONVERGED or
3326FLASH_<wbr/>REQUIRED as appropriate.<wbr/></p></span>
3327                  </li>
3328                </ul>
3329
3330            </td> <!-- entry_type -->
3331
3332            <td class="entry_description">
3333              <p>Current state of AE algorithm</p>
3334            </td>
3335
3336            <td class="entry_units">
3337            </td>
3338
3339            <td class="entry_range">
3340            </td>
3341
3342            <td class="entry_tags">
3343            </td>
3344
3345          </tr>
3346          <tr class="entries_header">
3347            <th class="th_details" colspan="5">Details</th>
3348          </tr>
3349          <tr class="entry_cont">
3350            <td class="entry_details" colspan="5">
3351              <p>Switching between or enabling AE modes (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>) always
3352resets the AE state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3353or <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
3354the algorithm states to INACTIVE.<wbr/></p>
3355<p>The camera device can do several state transitions between two results,<wbr/> if it is
3356allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3357seen in a result.<wbr/></p>
3358<p>The state in the result is the state for this image (in sync with this image): if
3359AE state becomes CONVERGED,<wbr/> then the image data associated with this result should
3360be good to use.<wbr/></p>
3361<p>Below are state transition tables for different AE modes.<wbr/></p>
3362<table>
3363<thead>
3364<tr>
3365<th align="center">State</th>
3366<th align="center">Transition Cause</th>
3367<th align="center">New State</th>
3368<th align="center">Notes</th>
3369</tr>
3370</thead>
3371<tbody>
3372<tr>
3373<td align="center">INACTIVE</td>
3374<td align="center"></td>
3375<td align="center">INACTIVE</td>
3376<td align="center">Camera device auto exposure algorithm is disabled</td>
3377</tr>
3378</tbody>
3379</table>
3380<p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON_<wbr/>*:</p>
3381<table>
3382<thead>
3383<tr>
3384<th align="center">State</th>
3385<th align="center">Transition Cause</th>
3386<th align="center">New State</th>
3387<th align="center">Notes</th>
3388</tr>
3389</thead>
3390<tbody>
3391<tr>
3392<td align="center">INACTIVE</td>
3393<td align="center">Camera device initiates AE scan</td>
3394<td align="center">SEARCHING</td>
3395<td align="center">Values changing</td>
3396</tr>
3397<tr>
3398<td align="center">INACTIVE</td>
3399<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3400<td align="center">LOCKED</td>
3401<td align="center">Values locked</td>
3402</tr>
3403<tr>
3404<td align="center">SEARCHING</td>
3405<td align="center">Camera device finishes AE scan</td>
3406<td align="center">CONVERGED</td>
3407<td align="center">Good values,<wbr/> not changing</td>
3408</tr>
3409<tr>
3410<td align="center">SEARCHING</td>
3411<td align="center">Camera device finishes AE scan</td>
3412<td align="center">FLASH_<wbr/>REQUIRED</td>
3413<td align="center">Converged but too dark w/<wbr/>o flash</td>
3414</tr>
3415<tr>
3416<td align="center">SEARCHING</td>
3417<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3418<td align="center">LOCKED</td>
3419<td align="center">Values locked</td>
3420</tr>
3421<tr>
3422<td align="center">CONVERGED</td>
3423<td align="center">Camera device initiates AE scan</td>
3424<td align="center">SEARCHING</td>
3425<td align="center">Values changing</td>
3426</tr>
3427<tr>
3428<td align="center">CONVERGED</td>
3429<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3430<td align="center">LOCKED</td>
3431<td align="center">Values locked</td>
3432</tr>
3433<tr>
3434<td align="center">FLASH_<wbr/>REQUIRED</td>
3435<td align="center">Camera device initiates AE scan</td>
3436<td align="center">SEARCHING</td>
3437<td align="center">Values changing</td>
3438</tr>
3439<tr>
3440<td align="center">FLASH_<wbr/>REQUIRED</td>
3441<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3442<td align="center">LOCKED</td>
3443<td align="center">Values locked</td>
3444</tr>
3445<tr>
3446<td align="center">LOCKED</td>
3447<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3448<td align="center">SEARCHING</td>
3449<td align="center">Values not good after unlock</td>
3450</tr>
3451<tr>
3452<td align="center">LOCKED</td>
3453<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3454<td align="center">CONVERGED</td>
3455<td align="center">Values good after unlock</td>
3456</tr>
3457<tr>
3458<td align="center">LOCKED</td>
3459<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3460<td align="center">FLASH_<wbr/>REQUIRED</td>
3461<td align="center">Exposure good,<wbr/> but too dark</td>
3462</tr>
3463<tr>
3464<td align="center">PRECAPTURE</td>
3465<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3466<td align="center">CONVERGED</td>
3467<td align="center">Ready for high-quality capture</td>
3468</tr>
3469<tr>
3470<td align="center">PRECAPTURE</td>
3471<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3472<td align="center">LOCKED</td>
3473<td align="center">Ready for high-quality capture</td>
3474</tr>
3475<tr>
3476<td align="center">Any state</td>
3477<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
3478<td align="center">PRECAPTURE</td>
3479<td align="center">Start AE precapture metering sequence</td>
3480</tr>
3481</tbody>
3482</table>
3483            </td>
3484          </tr>
3485
3486
3487          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3488           <!-- end of entry -->
3489        
3490                
3491          <tr class="entry" id="dynamic_android.control.afMode">
3492            <td class="entry_name" rowspan="3">
3493              android.<wbr/>control.<wbr/>af<wbr/>Mode
3494            </td>
3495            <td class="entry_type">
3496                <span class="entry_type_name entry_type_name_enum">byte</span>
3497
3498              <span class="entry_type_visibility"> [public]</span>
3499
3500                <ul class="entry_type_enum">
3501                  <li>
3502                    <span class="entry_type_enum_name">OFF</span>
3503                    <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
3504<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
3505application</p></span>
3506                  </li>
3507                  <li>
3508                    <span class="entry_type_enum_name">AUTO</span>
3509                    <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
3510<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
3511is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
3512the autofocus trigger action is called.<wbr/> When that trigger
3513is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
3514the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
3515<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
3516and sets the AF state to INACTIVE.<wbr/></p></span>
3517                  </li>
3518                  <li>
3519                    <span class="entry_type_enum_name">MACRO</span>
3520                    <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
3521autofocus trigger action is called.<wbr/></p>
3522<p>When that trigger is activated,<wbr/> AF must transition to
3523ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
3524NOT_<wbr/>FOCUSED).<wbr/>  Triggering cancel AF resets the lens
3525position to default,<wbr/> and sets the AF state to
3526INACTIVE.<wbr/></p></span>
3527                  </li>
3528                  <li>
3529                    <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
3530                    <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3531position continually to attempt to provide a
3532constantly-in-focus image stream.<wbr/></p>
3533<p>The focusing behavior should be suitable for good quality
3534video recording; typically this means slower focus
3535movement and no overshoots.<wbr/> When the AF trigger is not
3536involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
3537and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
3538states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
3539the algorithm should immediately transition into
3540AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3541lens position until a cancel AF trigger is received.<wbr/></p>
3542<p>Once cancel is received,<wbr/> the algorithm should transition
3543back to INACTIVE and resume passive scan.<wbr/> Note that this
3544behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
3545ongoing PASSIVE_<wbr/>SCAN must immediately be
3546canceled.<wbr/></p></span>
3547                  </li>
3548                  <li>
3549                    <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
3550                    <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3551position continually to attempt to provide a
3552constantly-in-focus image stream.<wbr/></p>
3553<p>The focusing behavior should be suitable for still image
3554capture; typically this means focusing as fast as
3555possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
3556algorithm should start in INACTIVE state,<wbr/> and then
3557transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
3558appropriate as it attempts to maintain focus.<wbr/> When the AF
3559trigger is activated,<wbr/> the algorithm should finish its
3560PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
3561AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3562lens position until a cancel AF trigger is received.<wbr/></p>
3563<p>When the AF cancel trigger is activated,<wbr/> the algorithm
3564should transition back to INACTIVE and then act as if it
3565has just been started.<wbr/></p></span>
3566                  </li>
3567                  <li>
3568                    <span class="entry_type_enum_name">EDOF</span>
3569                    <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
3570trigger is ignored,<wbr/> AF state should always be
3571INACTIVE.<wbr/></p></span>
3572                  </li>
3573                </ul>
3574
3575            </td> <!-- entry_type -->
3576
3577            <td class="entry_description">
3578              <p>Whether AF is currently enabled,<wbr/> and what
3579mode it is set to</p>
3580            </td>
3581
3582            <td class="entry_units">
3583            </td>
3584
3585            <td class="entry_range">
3586              <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
3587            </td>
3588
3589            <td class="entry_tags">
3590              <ul class="entry_tags">
3591                  <li><a href="#tag_BC">BC</a></li>
3592              </ul>
3593            </td>
3594
3595          </tr>
3596          <tr class="entries_header">
3597            <th class="th_details" colspan="5">Details</th>
3598          </tr>
3599          <tr class="entry_cont">
3600            <td class="entry_details" colspan="5">
3601              <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO.<wbr/></p>
3602<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
3603the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
3604in result metadata.<wbr/></p>
3605            </td>
3606          </tr>
3607
3608
3609          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3610           <!-- end of entry -->
3611        
3612                
3613          <tr class="entry" id="dynamic_android.control.afRegions">
3614            <td class="entry_name" rowspan="3">
3615              android.<wbr/>control.<wbr/>af<wbr/>Regions
3616            </td>
3617            <td class="entry_type">
3618                <span class="entry_type_name">int32</span>
3619                <span class="entry_type_container">x</span>
3620
3621                <span class="entry_type_array">
3622                  5 x area_count
3623                </span>
3624              <span class="entry_type_visibility"> [public]</span>
3625
3626
3627            </td> <!-- entry_type -->
3628
3629            <td class="entry_description">
3630              <p>List of areas to use for focus
3631estimation</p>
3632            </td>
3633
3634            <td class="entry_units">
3635            </td>
3636
3637            <td class="entry_range">
3638            </td>
3639
3640            <td class="entry_tags">
3641              <ul class="entry_tags">
3642                  <li><a href="#tag_BC">BC</a></li>
3643              </ul>
3644            </td>
3645
3646          </tr>
3647          <tr class="entries_header">
3648            <th class="th_details" colspan="5">Details</th>
3649          </tr>
3650          <tr class="entry_cont">
3651            <td class="entry_details" colspan="5">
3652              <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
3653xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
3654specified coordinates.<wbr/></p>
3655<p>The coordinate system is based on the active pixel array,<wbr/>
3656with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
3657(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3658<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
3659bottom-right pixel in the active pixel array.<wbr/> The weight
3660should be nonnegative.<wbr/></p>
3661<p>If all regions have 0 weight,<wbr/> then no specific focus area
3662needs to be used by the HAL.<wbr/> If the focusing region is
3663outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
3664should ignore the sections outside the region and output the
3665used sections in the frame metadata</p>
3666            </td>
3667          </tr>
3668
3669
3670          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3671           <!-- end of entry -->
3672        
3673                
3674          <tr class="entry" id="dynamic_android.control.afState">
3675            <td class="entry_name" rowspan="3">
3676              android.<wbr/>control.<wbr/>af<wbr/>State
3677            </td>
3678            <td class="entry_type">
3679                <span class="entry_type_name entry_type_name_enum">byte</span>
3680
3681              <span class="entry_type_visibility"> [public]</span>
3682
3683                <ul class="entry_type_enum">
3684                  <li>
3685                    <span class="entry_type_enum_name">INACTIVE</span>
3686                    <span class="entry_type_enum_notes"><p>AF off or has not yet tried to scan/<wbr/>been asked
3687to scan.<wbr/>  When a camera device is opened,<wbr/> it starts in
3688this state.<wbr/></p></span>
3689                  </li>
3690                  <li>
3691                    <span class="entry_type_enum_name">PASSIVE_SCAN</span>
3692                    <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF is
3693currently doing an AF scan initiated by a continuous
3694autofocus mode</p></span>
3695                  </li>
3696                  <li>
3697                    <span class="entry_type_enum_name">PASSIVE_FOCUSED</span>
3698                    <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF currently
3699believes it is in focus,<wbr/> but may restart scanning at
3700any time.<wbr/></p></span>
3701                  </li>
3702                  <li>
3703                    <span class="entry_type_enum_name">ACTIVE_SCAN</span>
3704                    <span class="entry_type_enum_notes"><p>if AUTO or MACRO modes are supported.<wbr/> AF is doing
3705an AF scan because it was triggered by AF
3706trigger</p></span>
3707                  </li>
3708                  <li>
3709                    <span class="entry_type_enum_name">FOCUSED_LOCKED</span>
3710                    <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF
3711believes it is focused correctly and is
3712locked</p></span>
3713                  </li>
3714                  <li>
3715                    <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span>
3716                    <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF has
3717failed to focus successfully and is
3718locked</p></span>
3719                  </li>
3720                  <li>
3721                    <span class="entry_type_enum_name">PASSIVE_UNFOCUSED</span>
3722                    <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF finished a
3723passive scan without finding focus,<wbr/> and may restart
3724scanning at any time.<wbr/></p></span>
3725                  </li>
3726                </ul>
3727
3728            </td> <!-- entry_type -->
3729
3730            <td class="entry_description">
3731              <p>Current state of AF algorithm</p>
3732            </td>
3733
3734            <td class="entry_units">
3735            </td>
3736
3737            <td class="entry_range">
3738            </td>
3739
3740            <td class="entry_tags">
3741            </td>
3742
3743          </tr>
3744          <tr class="entries_header">
3745            <th class="th_details" colspan="5">Details</th>
3746          </tr>
3747          <tr class="entry_cont">
3748            <td class="entry_details" colspan="5">
3749              <p>Switching between or enabling AF modes (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) always
3750resets the AF state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3751or <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
3752the algorithm states to INACTIVE.<wbr/></p>
3753<p>The camera device can do several state transitions between two results,<wbr/> if it is
3754allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3755seen in a result.<wbr/></p>
3756<p>The state in the result is the state for this image (in sync with this image): if
3757AF state becomes FOCUSED,<wbr/> then the image data associated with this result should
3758be sharp.<wbr/></p>
3759<p>Below are state transition tables for different AF modes.<wbr/></p>
3760<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>
3761<table>
3762<thead>
3763<tr>
3764<th align="center">State</th>
3765<th align="center">Transition Cause</th>
3766<th align="center">New State</th>
3767<th align="center">Notes</th>
3768</tr>
3769</thead>
3770<tbody>
3771<tr>
3772<td align="center">INACTIVE</td>
3773<td align="center"></td>
3774<td align="center">INACTIVE</td>
3775<td align="center">Never changes</td>
3776</tr>
3777</tbody>
3778</table>
3779<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>
3780<table>
3781<thead>
3782<tr>
3783<th align="center">State</th>
3784<th align="center">Transition Cause</th>
3785<th align="center">New State</th>
3786<th align="center">Notes</th>
3787</tr>
3788</thead>
3789<tbody>
3790<tr>
3791<td align="center">INACTIVE</td>
3792<td align="center">AF_<wbr/>TRIGGER</td>
3793<td align="center">ACTIVE_<wbr/>SCAN</td>
3794<td align="center">Start AF sweep,<wbr/> Lens now moving</td>
3795</tr>
3796<tr>
3797<td align="center">ACTIVE_<wbr/>SCAN</td>
3798<td align="center">AF sweep done</td>
3799<td align="center">FOCUSED_<wbr/>LOCKED</td>
3800<td align="center">Focused,<wbr/> Lens now locked</td>
3801</tr>
3802<tr>
3803<td align="center">ACTIVE_<wbr/>SCAN</td>
3804<td align="center">AF sweep done</td>
3805<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
3806<td align="center">Not focused,<wbr/> Lens now locked</td>
3807</tr>
3808<tr>
3809<td align="center">ACTIVE_<wbr/>SCAN</td>
3810<td align="center">AF_<wbr/>CANCEL</td>
3811<td align="center">INACTIVE</td>
3812<td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
3813</tr>
3814<tr>
3815<td align="center">FOCUSED_<wbr/>LOCKED</td>
3816<td align="center">AF_<wbr/>CANCEL</td>
3817<td align="center">INACTIVE</td>
3818<td align="center">Cancel/<wbr/>reset AF</td>
3819</tr>
3820<tr>
3821<td align="center">FOCUSED_<wbr/>LOCKED</td>
3822<td align="center">AF_<wbr/>TRIGGER</td>
3823<td align="center">ACTIVE_<wbr/>SCAN</td>
3824<td align="center">Start new sweep,<wbr/> Lens now moving</td>
3825</tr>
3826<tr>
3827<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
3828<td align="center">AF_<wbr/>CANCEL</td>
3829<td align="center">INACTIVE</td>
3830<td align="center">Cancel/<wbr/>reset AF</td>
3831</tr>
3832<tr>
3833<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
3834<td align="center">AF_<wbr/>TRIGGER</td>
3835<td align="center">ACTIVE_<wbr/>SCAN</td>
3836<td align="center">Start new sweep,<wbr/> Lens now moving</td>
3837</tr>
3838<tr>
3839<td align="center">Any state</td>
3840<td align="center">Mode change</td>
3841<td align="center">INACTIVE</td>
3842<td align="center"></td>
3843</tr>
3844</tbody>
3845</table>
3846<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>
3847<table>
3848<thead>
3849<tr>
3850<th align="center">State</th>
3851<th align="center">Transition Cause</th>
3852<th align="center">New State</th>
3853<th align="center">Notes</th>
3854</tr>
3855</thead>
3856<tbody>
3857<tr>
3858<td align="center">INACTIVE</td>
3859<td align="center">Camera device initiates new scan</td>
3860<td align="center">PASSIVE_<wbr/>SCAN</td>
3861<td align="center">Start AF scan,<wbr/> Lens now moving</td>
3862</tr>
3863<tr>
3864<td align="center">INACTIVE</td>
3865<td align="center">AF_<wbr/>TRIGGER</td>
3866<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
3867<td align="center">AF state query,<wbr/> Lens now locked</td>
3868</tr>
3869<tr>
3870<td align="center">PASSIVE_<wbr/>SCAN</td>
3871<td align="center">Camera device completes current scan</td>
3872<td align="center">PASSIVE_<wbr/>FOCUSED</td>
3873<td align="center">End AF scan,<wbr/> Lens now locked</td>
3874</tr>
3875<tr>
3876<td align="center">PASSIVE_<wbr/>SCAN</td>
3877<td align="center">Camera device fails current scan</td>
3878<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
3879<td align="center">End AF scan,<wbr/> Lens now locked</td>
3880</tr>
3881<tr>
3882<td align="center">PASSIVE_<wbr/>SCAN</td>
3883<td align="center">AF_<wbr/>TRIGGER</td>
3884<td align="center">FOCUSED_<wbr/>LOCKED</td>
3885<td align="center">Immediate trans.<wbr/> If focus is good,<wbr/> Lens now locked</td>
3886</tr>
3887<tr>
3888<td align="center">PASSIVE_<wbr/>SCAN</td>
3889<td align="center">AF_<wbr/>TRIGGER</td>
3890<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
3891<td align="center">Immediate trans.<wbr/> if focus is bad,<wbr/> Lens now locked</td>
3892</tr>
3893<tr>
3894<td align="center">PASSIVE_<wbr/>SCAN</td>
3895<td align="center">AF_<wbr/>CANCEL</td>
3896<td align="center">INACTIVE</td>
3897<td align="center">Reset lens position,<wbr/> Lens now locked</td>
3898</tr>
3899<tr>
3900<td align="center">PASSIVE_<wbr/>FOCUSED</td>
3901<td align="center">Camera device initiates new scan</td>
3902<td align="center">PASSIVE_<wbr/>SCAN</td>
3903<td align="center">Start AF scan,<wbr/> Lens now moving</td>
3904</tr>
3905<tr>
3906<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
3907<td align="center">Camera device initiates new scan</td>
3908<td align="center">PASSIVE_<wbr/>SCAN</td>
3909<td align="center">Start AF scan,<wbr/> Lens now moving</td>
3910</tr>
3911<tr>
3912<td align="center">PASSIVE_<wbr/>FOCUSED</td>
3913<td align="center">AF_<wbr/>TRIGGER</td>
3914<td align="center">FOCUSED_<wbr/>LOCKED</td>
3915<td align="center">Immediate trans.<wbr/> Lens now locked</td>
3916</tr>
3917<tr>
3918<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
3919<td align="center">AF_<wbr/>TRIGGER</td>
3920<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
3921<td align="center">Immediate trans.<wbr/> Lens now locked</td>
3922</tr>
3923<tr>
3924<td align="center">FOCUSED_<wbr/>LOCKED</td>
3925<td align="center">AF_<wbr/>TRIGGER</td>
3926<td align="center">FOCUSED_<wbr/>LOCKED</td>
3927<td align="center">No effect</td>
3928</tr>
3929<tr>
3930<td align="center">FOCUSED_<wbr/>LOCKED</td>
3931<td align="center">AF_<wbr/>CANCEL</td>
3932<td align="center">INACTIVE</td>
3933<td align="center">Restart AF scan</td>
3934</tr>
3935<tr>
3936<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
3937<td align="center">AF_<wbr/>TRIGGER</td>
3938<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
3939<td align="center">No effect</td>
3940</tr>
3941<tr>
3942<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
3943<td align="center">AF_<wbr/>CANCEL</td>
3944<td align="center">INACTIVE</td>
3945<td align="center">Restart AF scan</td>
3946</tr>
3947</tbody>
3948</table>
3949<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>
3950<table>
3951<thead>
3952<tr>
3953<th align="center">State</th>
3954<th align="center">Transition Cause</th>
3955<th align="center">New State</th>
3956<th align="center">Notes</th>
3957</tr>
3958</thead>
3959<tbody>
3960<tr>
3961<td align="center">INACTIVE</td>
3962<td align="center">Camera device initiates new scan</td>
3963<td align="center">PASSIVE_<wbr/>SCAN</td>
3964<td align="center">Start AF scan,<wbr/> Lens now moving</td>
3965</tr>
3966<tr>
3967<td align="center">INACTIVE</td>
3968<td align="center">AF_<wbr/>TRIGGER</td>
3969<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
3970<td align="center">AF state query,<wbr/> Lens now locked</td>
3971</tr>
3972<tr>
3973<td align="center">PASSIVE_<wbr/>SCAN</td>
3974<td align="center">Camera device completes current scan</td>
3975<td align="center">PASSIVE_<wbr/>FOCUSED</td>
3976<td align="center">End AF scan,<wbr/> Lens now locked</td>
3977</tr>
3978<tr>
3979<td align="center">PASSIVE_<wbr/>SCAN</td>
3980<td align="center">Camera device fails current scan</td>
3981<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
3982<td align="center">End AF scan,<wbr/> Lens now locked</td>
3983</tr>
3984<tr>
3985<td align="center">PASSIVE_<wbr/>SCAN</td>
3986<td align="center">AF_<wbr/>TRIGGER</td>
3987<td align="center">FOCUSED_<wbr/>LOCKED</td>
3988<td align="center">Eventual trans.<wbr/> once focus good,<wbr/> Lens now locked</td>
3989</tr>
3990<tr>
3991<td align="center">PASSIVE_<wbr/>SCAN</td>
3992<td align="center">AF_<wbr/>TRIGGER</td>
3993<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
3994<td align="center">Eventual trans.<wbr/> if cannot focus,<wbr/> Lens now locked</td>
3995</tr>
3996<tr>
3997<td align="center">PASSIVE_<wbr/>SCAN</td>
3998<td align="center">AF_<wbr/>CANCEL</td>
3999<td align="center">INACTIVE</td>
4000<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4001</tr>
4002<tr>
4003<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4004<td align="center">Camera device initiates new scan</td>
4005<td align="center">PASSIVE_<wbr/>SCAN</td>
4006<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4007</tr>
4008<tr>
4009<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4010<td align="center">Camera device initiates new scan</td>
4011<td align="center">PASSIVE_<wbr/>SCAN</td>
4012<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4013</tr>
4014<tr>
4015<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4016<td align="center">AF_<wbr/>TRIGGER</td>
4017<td align="center">FOCUSED_<wbr/>LOCKED</td>
4018<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4019</tr>
4020<tr>
4021<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4022<td align="center">AF_<wbr/>TRIGGER</td>
4023<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4024<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4025</tr>
4026<tr>
4027<td align="center">FOCUSED_<wbr/>LOCKED</td>
4028<td align="center">AF_<wbr/>TRIGGER</td>
4029<td align="center">FOCUSED_<wbr/>LOCKED</td>
4030<td align="center">No effect</td>
4031</tr>
4032<tr>
4033<td align="center">FOCUSED_<wbr/>LOCKED</td>
4034<td align="center">AF_<wbr/>CANCEL</td>
4035<td align="center">INACTIVE</td>
4036<td align="center">Restart AF scan</td>
4037</tr>
4038<tr>
4039<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4040<td align="center">AF_<wbr/>TRIGGER</td>
4041<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4042<td align="center">No effect</td>
4043</tr>
4044<tr>
4045<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4046<td align="center">AF_<wbr/>CANCEL</td>
4047<td align="center">INACTIVE</td>
4048<td align="center">Restart AF scan</td>
4049</tr>
4050</tbody>
4051</table>
4052            </td>
4053          </tr>
4054
4055
4056          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4057           <!-- end of entry -->
4058        
4059                
4060          <tr class="entry" id="dynamic_android.control.afTriggerId">
4061            <td class="entry_name" rowspan="3">
4062              android.<wbr/>control.<wbr/>af<wbr/>Trigger<wbr/>Id
4063            </td>
4064            <td class="entry_type">
4065                <span class="entry_type_name">int32</span>
4066
4067              <span class="entry_type_visibility"> [hidden]</span>
4068
4069
4070            </td> <!-- entry_type -->
4071
4072            <td class="entry_description">
4073              <p>The ID sent with the latest
4074CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS call</p>
4075            </td>
4076
4077            <td class="entry_units">
4078            </td>
4079
4080            <td class="entry_range">
4081            </td>
4082
4083            <td class="entry_tags">
4084            </td>
4085
4086          </tr>
4087          <tr class="entries_header">
4088            <th class="th_details" colspan="5">Details</th>
4089          </tr>
4090          <tr class="entry_cont">
4091            <td class="entry_details" colspan="5">
4092              <p>Must be 0 if no CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS trigger
4093received yet by HAL.<wbr/> Always updated even if AF algorithm
4094ignores the trigger</p>
4095            </td>
4096          </tr>
4097
4098
4099          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4100           <!-- end of entry -->
4101        
4102                
4103          <tr class="entry" id="dynamic_android.control.awbMode">
4104            <td class="entry_name" rowspan="3">
4105              android.<wbr/>control.<wbr/>awb<wbr/>Mode
4106            </td>
4107            <td class="entry_type">
4108                <span class="entry_type_name entry_type_name_enum">byte</span>
4109
4110              <span class="entry_type_visibility"> [public]</span>
4111
4112                <ul class="entry_type_enum">
4113                  <li>
4114                    <span class="entry_type_enum_name">OFF</span>
4115                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4116the application-selected color transform matrix
4117(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
4118(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
4119device for manual white balance control.<wbr/></p></span>
4120                  </li>
4121                  <li>
4122                    <span class="entry_type_enum_name">AUTO</span>
4123                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
4124the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
4125and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/></p></span>
4126                  </li>
4127                  <li>
4128                    <span class="entry_type_enum_name">INCANDESCENT</span>
4129                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4130the camera device uses incandescent light as the assumed scene
4131illumination for white balance.<wbr/> While the exact white balance
4132transforms are up to the camera device,<wbr/> they will approximately
4133match the CIE standard illuminant A.<wbr/></p></span>
4134                  </li>
4135                  <li>
4136                    <span class="entry_type_enum_name">FLUORESCENT</span>
4137                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4138the camera device uses fluorescent light as the assumed scene
4139illumination for white balance.<wbr/> While the exact white balance
4140transforms are up to the camera device,<wbr/> they will approximately
4141match the CIE standard illuminant F2.<wbr/></p></span>
4142                  </li>
4143                  <li>
4144                    <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
4145                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4146the camera device uses warm fluorescent light as the assumed scene
4147illumination for white balance.<wbr/> While the exact white balance
4148transforms are up to the camera device,<wbr/> they will approximately
4149match the CIE standard illuminant F4.<wbr/></p></span>
4150                  </li>
4151                  <li>
4152                    <span class="entry_type_enum_name">DAYLIGHT</span>
4153                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4154the camera device uses daylight light as the assumed scene
4155illumination for white balance.<wbr/> While the exact white balance
4156transforms are up to the camera device,<wbr/> they will approximately
4157match the CIE standard illuminant D65.<wbr/></p></span>
4158                  </li>
4159                  <li>
4160                    <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
4161                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4162the camera device uses cloudy daylight light as the assumed scene
4163illumination for white balance.<wbr/></p></span>
4164                  </li>
4165                  <li>
4166                    <span class="entry_type_enum_name">TWILIGHT</span>
4167                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4168the camera device uses twilight light as the assumed scene
4169illumination for white balance.<wbr/></p></span>
4170                  </li>
4171                  <li>
4172                    <span class="entry_type_enum_name">SHADE</span>
4173                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4174the camera device uses shade light as the assumed scene
4175illumination for white balance.<wbr/></p></span>
4176                  </li>
4177                </ul>
4178
4179            </td> <!-- entry_type -->
4180
4181            <td class="entry_description">
4182              <p>Whether AWB is currently setting the color
4183transform fields,<wbr/> and what its illumination target
4184is</p>
4185            </td>
4186
4187            <td class="entry_units">
4188            </td>
4189
4190            <td class="entry_range">
4191              <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
4192            </td>
4193
4194            <td class="entry_tags">
4195              <ul class="entry_tags">
4196                  <li><a href="#tag_BC">BC</a></li>
4197                  <li><a href="#tag_AWB">AWB</a></li>
4198              </ul>
4199            </td>
4200
4201          </tr>
4202          <tr class="entries_header">
4203            <th class="th_details" colspan="5">Details</th>
4204          </tr>
4205          <tr class="entry_cont">
4206            <td class="entry_details" colspan="5">
4207              <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
4208<p>When set to the ON mode,<wbr/> the camera device's auto white balance
4209routine is enabled,<wbr/> overriding the application's selected
4210<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
4211<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4212<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
4213routine is disabled.<wbr/> The applicantion manually controls the white
4214balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
4215and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4216<p>When set to any other modes,<wbr/> the camera device's auto white balance
4217routine is disabled.<wbr/> The camera device uses each particular illumination
4218target for white balance adjustment.<wbr/></p>
4219            </td>
4220          </tr>
4221
4222
4223          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4224           <!-- end of entry -->
4225        
4226                
4227          <tr class="entry" id="dynamic_android.control.awbRegions">
4228            <td class="entry_name" rowspan="3">
4229              android.<wbr/>control.<wbr/>awb<wbr/>Regions
4230            </td>
4231            <td class="entry_type">
4232                <span class="entry_type_name">int32</span>
4233                <span class="entry_type_container">x</span>
4234
4235                <span class="entry_type_array">
4236                  5 x area_count
4237                </span>
4238              <span class="entry_type_visibility"> [public]</span>
4239
4240
4241            </td> <!-- entry_type -->
4242
4243            <td class="entry_description">
4244              <p>List of areas to use for illuminant
4245estimation</p>
4246            </td>
4247
4248            <td class="entry_units">
4249            </td>
4250
4251            <td class="entry_range">
4252            </td>
4253
4254            <td class="entry_tags">
4255              <ul class="entry_tags">
4256                  <li><a href="#tag_BC">BC</a></li>
4257              </ul>
4258            </td>
4259
4260          </tr>
4261          <tr class="entries_header">
4262            <th class="th_details" colspan="5">Details</th>
4263          </tr>
4264          <tr class="entry_cont">
4265            <td class="entry_details" colspan="5">
4266              <p>Only used in AUTO mode.<wbr/></p>
4267<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
4268xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
4269specified coordinates.<wbr/></p>
4270<p>The coordinate system is based on the active pixel array,<wbr/>
4271with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
4272(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
4273<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
4274bottom-right pixel in the active pixel array.<wbr/> The weight
4275should be nonnegative.<wbr/></p>
4276<p>If all regions have 0 weight,<wbr/> then no specific metering area
4277needs to be used by the HAL.<wbr/> If the metering region is
4278outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
4279should ignore the sections outside the region and output the
4280used sections in the frame metadata</p>
4281            </td>
4282          </tr>
4283
4284
4285          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4286           <!-- end of entry -->
4287        
4288                
4289          <tr class="entry" id="dynamic_android.control.awbState">
4290            <td class="entry_name" rowspan="3">
4291              android.<wbr/>control.<wbr/>awb<wbr/>State
4292            </td>
4293            <td class="entry_type">
4294                <span class="entry_type_name entry_type_name_enum">byte</span>
4295
4296              <span class="entry_type_visibility"> [public]</span>
4297
4298                <ul class="entry_type_enum">
4299                  <li>
4300                    <span class="entry_type_enum_name">INACTIVE</span>
4301                    <span class="entry_type_enum_notes"><p>AWB is not in auto mode.<wbr/>  When a camera device is opened,<wbr/> it
4302starts in this state.<wbr/></p></span>
4303                  </li>
4304                  <li>
4305                    <span class="entry_type_enum_name">SEARCHING</span>
4306                    <span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control
4307values for the current scene.<wbr/></p></span>
4308                  </li>
4309                  <li>
4310                    <span class="entry_type_enum_name">CONVERGED</span>
4311                    <span class="entry_type_enum_notes"><p>AWB has a good set of control values for the
4312current scene.<wbr/></p></span>
4313                  </li>
4314                  <li>
4315                    <span class="entry_type_enum_name">LOCKED</span>
4316                    <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
4317                  </li>
4318                </ul>
4319
4320            </td> <!-- entry_type -->
4321
4322            <td class="entry_description">
4323              <p>Current state of AWB algorithm</p>
4324            </td>
4325
4326            <td class="entry_units">
4327            </td>
4328
4329            <td class="entry_range">
4330            </td>
4331
4332            <td class="entry_tags">
4333            </td>
4334
4335          </tr>
4336          <tr class="entries_header">
4337            <th class="th_details" colspan="5">Details</th>
4338          </tr>
4339          <tr class="entry_cont">
4340            <td class="entry_details" colspan="5">
4341              <p>Switching between or enabling AWB modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) always
4342resets the AWB state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
4343or <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
4344the algorithm states to INACTIVE.<wbr/></p>
4345<p>The camera device can do several state transitions between two results,<wbr/> if it is
4346allowed by the state transition table.<wbr/> So INACTIVE may never actually be seen in
4347a result.<wbr/></p>
4348<p>The state in the result is the state for this image (in sync with this image): if
4349AWB state becomes CONVERGED,<wbr/> then the image data associated with this result should
4350be good to use.<wbr/></p>
4351<p>Below are state transition tables for different AWB modes.<wbr/></p>
4352<p>When <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != AWB_<wbr/>MODE_<wbr/>AUTO</code>:</p>
4353<table>
4354<thead>
4355<tr>
4356<th align="center">State</th>
4357<th align="center">Transition Cause</th>
4358<th align="center">New State</th>
4359<th align="center">Notes</th>
4360</tr>
4361</thead>
4362<tbody>
4363<tr>
4364<td align="center">INACTIVE</td>
4365<td align="center"></td>
4366<td align="center">INACTIVE</td>
4367<td align="center">Camera device auto white balance algorithm is disabled</td>
4368</tr>
4369</tbody>
4370</table>
4371<p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is AWB_<wbr/>MODE_<wbr/>AUTO:</p>
4372<table>
4373<thead>
4374<tr>
4375<th align="center">State</th>
4376<th align="center">Transition Cause</th>
4377<th align="center">New State</th>
4378<th align="center">Notes</th>
4379</tr>
4380</thead>
4381<tbody>
4382<tr>
4383<td align="center">INACTIVE</td>
4384<td align="center">Camera device initiates AWB scan</td>
4385<td align="center">SEARCHING</td>
4386<td align="center">Values changing</td>
4387</tr>
4388<tr>
4389<td align="center">INACTIVE</td>
4390<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4391<td align="center">LOCKED</td>
4392<td align="center">Values locked</td>
4393</tr>
4394<tr>
4395<td align="center">SEARCHING</td>
4396<td align="center">Camera device finishes AWB scan</td>
4397<td align="center">CONVERGED</td>
4398<td align="center">Good values,<wbr/> not changing</td>
4399</tr>
4400<tr>
4401<td align="center">SEARCHING</td>
4402<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4403<td align="center">LOCKED</td>
4404<td align="center">Values locked</td>
4405</tr>
4406<tr>
4407<td align="center">CONVERGED</td>
4408<td align="center">Camera device initiates AWB scan</td>
4409<td align="center">SEARCHING</td>
4410<td align="center">Values changing</td>
4411</tr>
4412<tr>
4413<td align="center">CONVERGED</td>
4414<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4415<td align="center">LOCKED</td>
4416<td align="center">Values locked</td>
4417</tr>
4418<tr>
4419<td align="center">LOCKED</td>
4420<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4421<td align="center">SEARCHING</td>
4422<td align="center">Values not good after unlock</td>
4423</tr>
4424<tr>
4425<td align="center">LOCKED</td>
4426<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4427<td align="center">CONVERGED</td>
4428<td align="center">Values good after unlock</td>
4429</tr>
4430</tbody>
4431</table>
4432            </td>
4433          </tr>
4434
4435
4436          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4437           <!-- end of entry -->
4438        
4439                
4440          <tr class="entry" id="dynamic_android.control.mode">
4441            <td class="entry_name" rowspan="3">
4442              android.<wbr/>control.<wbr/>mode
4443            </td>
4444            <td class="entry_type">
4445                <span class="entry_type_name entry_type_name_enum">byte</span>
4446
4447              <span class="entry_type_visibility"> [public]</span>
4448
4449                <ul class="entry_type_enum">
4450                  <li>
4451                    <span class="entry_type_enum_name">OFF</span>
4452                    <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
4453routines are disabled,<wbr/> no other settings in
4454android.<wbr/>control.<wbr/>* have any effect</p></span>
4455                  </li>
4456                  <li>
4457                    <span class="entry_type_enum_name">AUTO</span>
4458                    <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
4459Manual control of capture parameters is disabled.<wbr/> All
4460controls in android.<wbr/>control.<wbr/>* besides sceneMode take
4461effect</p></span>
4462                  </li>
4463                  <li>
4464                    <span class="entry_type_enum_name">USE_SCENE_MODE</span>
4465                    <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
4466control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
4467controls; the HAL must ignore those settings while
4468USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
4469scene mode).<wbr/> Other control entries are still active.<wbr/>
4470This setting can only be used if availableSceneModes !=
4471UNSUPPORTED</p></span>
4472                  </li>
4473                </ul>
4474
4475            </td> <!-- entry_type -->
4476
4477            <td class="entry_description">
4478              <p>Overall mode of 3A control
4479routines</p>
4480            </td>
4481
4482            <td class="entry_units">
4483            </td>
4484
4485            <td class="entry_range">
4486              <p>all must be supported</p>
4487            </td>
4488
4489            <td class="entry_tags">
4490              <ul class="entry_tags">
4491                  <li><a href="#tag_BC">BC</a></li>
4492              </ul>
4493            </td>
4494
4495          </tr>
4496          <tr class="entries_header">
4497            <th class="th_details" colspan="5">Details</th>
4498          </tr>
4499          <tr class="entry_cont">
4500            <td class="entry_details" colspan="5">
4501              <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
4502by the camera device is disabled.<wbr/> The application must set the fields for
4503capture parameters itself.<wbr/></p>
4504<p>When set to AUTO,<wbr/> the individual algorithm controls in
4505android.<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>
4506<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
4507android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
4508one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
4509as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
4510<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
4511            </td>
4512          </tr>
4513
4514
4515          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4516           <!-- end of entry -->
4517        
4518        
4519
4520      <!-- end of kind -->
4521      </tbody>
4522
4523  <!-- end of section -->
4524  <tr><td colspan="6" id="section_demosaic" class="section">demosaic</td></tr>
4525
4526
4527      <tr><td colspan="6" class="kind">controls</td></tr>
4528
4529      <thead class="entries_header">
4530        <tr>
4531          <th class="th_name">Property Name</th>
4532          <th class="th_type">Type</th>
4533          <th class="th_description">Description</th>
4534          <th class="th_units">Units</th>
4535          <th class="th_range">Range</th>
4536          <th class="th_tags">Tags</th>
4537        </tr>
4538      </thead>
4539
4540      <tbody>
4541
4542        
4543
4544        
4545
4546        
4547
4548        
4549
4550                
4551          <tr class="entry" id="controls_android.demosaic.mode">
4552            <td class="entry_name" rowspan="1">
4553              android.<wbr/>demosaic.<wbr/>mode
4554            </td>
4555            <td class="entry_type">
4556                <span class="entry_type_name entry_type_name_enum">byte</span>
4557
4558              <span class="entry_type_visibility"> [system]</span>
4559
4560                <ul class="entry_type_enum">
4561                  <li>
4562                    <span class="entry_type_enum_name">FAST</span>
4563                    <span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to
4564Bayer RAW output</p></span>
4565                  </li>
4566                  <li>
4567                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
4568                    <span class="entry_type_enum_notes"><p>High-quality may reduce output frame
4569rate</p></span>
4570                  </li>
4571                </ul>
4572
4573            </td> <!-- entry_type -->
4574
4575            <td class="entry_description">
4576              <p>Controls the quality of the demosaicing
4577processing</p>
4578            </td>
4579
4580            <td class="entry_units">
4581            </td>
4582
4583            <td class="entry_range">
4584            </td>
4585
4586            <td class="entry_tags">
4587              <ul class="entry_tags">
4588                  <li><a href="#tag_V1">V1</a></li>
4589              </ul>
4590            </td>
4591
4592          </tr>
4593
4594
4595          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4596           <!-- end of entry -->
4597        
4598        
4599
4600      <!-- end of kind -->
4601      </tbody>
4602
4603  <!-- end of section -->
4604  <tr><td colspan="6" id="section_edge" class="section">edge</td></tr>
4605
4606
4607      <tr><td colspan="6" class="kind">controls</td></tr>
4608
4609      <thead class="entries_header">
4610        <tr>
4611          <th class="th_name">Property Name</th>
4612          <th class="th_type">Type</th>
4613          <th class="th_description">Description</th>
4614          <th class="th_units">Units</th>
4615          <th class="th_range">Range</th>
4616          <th class="th_tags">Tags</th>
4617        </tr>
4618      </thead>
4619
4620      <tbody>
4621
4622        
4623
4624        
4625
4626        
4627
4628        
4629
4630                
4631          <tr class="entry" id="controls_android.edge.mode">
4632            <td class="entry_name" rowspan="3">
4633              android.<wbr/>edge.<wbr/>mode
4634            </td>
4635            <td class="entry_type">
4636                <span class="entry_type_name entry_type_name_enum">byte</span>
4637
4638              <span class="entry_type_visibility"> [public]</span>
4639
4640                <ul class="entry_type_enum">
4641                  <li>
4642                    <span class="entry_type_enum_name">OFF</span>
4643                    <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
4644                  </li>
4645                  <li>
4646                    <span class="entry_type_enum_name">FAST</span>
4647                    <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4648output</p></span>
4649                  </li>
4650                  <li>
4651                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
4652                    <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4653quality</p></span>
4654                  </li>
4655                </ul>
4656
4657            </td> <!-- entry_type -->
4658
4659            <td class="entry_description">
4660              <p>Operation mode for edge
4661enhancement</p>
4662            </td>
4663
4664            <td class="entry_units">
4665            </td>
4666
4667            <td class="entry_range">
4668            </td>
4669
4670            <td class="entry_tags">
4671            </td>
4672
4673          </tr>
4674          <tr class="entries_header">
4675            <th class="th_details" colspan="5">Details</th>
4676          </tr>
4677          <tr class="entry_cont">
4678            <td class="entry_details" colspan="5">
4679              <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
4680enhancement will be applied by the HAL.<wbr/></p>
4681<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
4682will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
4683camera device will use the highest-quality enhancement algorithms,<wbr/>
4684even if it slows down capture rate.<wbr/> FAST means the camera device will
4685not slow down capture rate when applying edge enhancement.<wbr/></p>
4686            </td>
4687          </tr>
4688
4689
4690          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4691           <!-- end of entry -->
4692        
4693                
4694          <tr class="entry" id="controls_android.edge.strength">
4695            <td class="entry_name" rowspan="1">
4696              android.<wbr/>edge.<wbr/>strength
4697            </td>
4698            <td class="entry_type">
4699                <span class="entry_type_name">byte</span>
4700
4701              <span class="entry_type_visibility"> [system]</span>
4702
4703
4704            </td> <!-- entry_type -->
4705
4706            <td class="entry_description">
4707              <p>Control the amount of edge enhancement
4708applied to the images</p>
4709            </td>
4710
4711            <td class="entry_units">
4712              1-10; 10 is maximum sharpening
4713            </td>
4714
4715            <td class="entry_range">
4716            </td>
4717
4718            <td class="entry_tags">
4719            </td>
4720
4721          </tr>
4722
4723
4724          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4725           <!-- end of entry -->
4726        
4727        
4728
4729      <!-- end of kind -->
4730      </tbody>
4731      <tr><td colspan="6" class="kind">dynamic</td></tr>
4732
4733      <thead class="entries_header">
4734        <tr>
4735          <th class="th_name">Property Name</th>
4736          <th class="th_type">Type</th>
4737          <th class="th_description">Description</th>
4738          <th class="th_units">Units</th>
4739          <th class="th_range">Range</th>
4740          <th class="th_tags">Tags</th>
4741        </tr>
4742      </thead>
4743
4744      <tbody>
4745
4746        
4747
4748        
4749
4750        
4751
4752        
4753
4754                
4755          <tr class="entry" id="dynamic_android.edge.mode">
4756            <td class="entry_name" rowspan="3">
4757              android.<wbr/>edge.<wbr/>mode
4758            </td>
4759            <td class="entry_type">
4760                <span class="entry_type_name entry_type_name_enum">byte</span>
4761
4762              <span class="entry_type_visibility"> [public]</span>
4763
4764                <ul class="entry_type_enum">
4765                  <li>
4766                    <span class="entry_type_enum_name">OFF</span>
4767                    <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
4768                  </li>
4769                  <li>
4770                    <span class="entry_type_enum_name">FAST</span>
4771                    <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4772output</p></span>
4773                  </li>
4774                  <li>
4775                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
4776                    <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4777quality</p></span>
4778                  </li>
4779                </ul>
4780
4781            </td> <!-- entry_type -->
4782
4783            <td class="entry_description">
4784              <p>Operation mode for edge
4785enhancement</p>
4786            </td>
4787
4788            <td class="entry_units">
4789            </td>
4790
4791            <td class="entry_range">
4792            </td>
4793
4794            <td class="entry_tags">
4795            </td>
4796
4797          </tr>
4798          <tr class="entries_header">
4799            <th class="th_details" colspan="5">Details</th>
4800          </tr>
4801          <tr class="entry_cont">
4802            <td class="entry_details" colspan="5">
4803              <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
4804enhancement will be applied by the HAL.<wbr/></p>
4805<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
4806will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
4807camera device will use the highest-quality enhancement algorithms,<wbr/>
4808even if it slows down capture rate.<wbr/> FAST means the camera device will
4809not slow down capture rate when applying edge enhancement.<wbr/></p>
4810            </td>
4811          </tr>
4812
4813
4814          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4815           <!-- end of entry -->
4816        
4817        
4818
4819      <!-- end of kind -->
4820      </tbody>
4821
4822  <!-- end of section -->
4823  <tr><td colspan="6" id="section_flash" class="section">flash</td></tr>
4824
4825
4826      <tr><td colspan="6" class="kind">controls</td></tr>
4827
4828      <thead class="entries_header">
4829        <tr>
4830          <th class="th_name">Property Name</th>
4831          <th class="th_type">Type</th>
4832          <th class="th_description">Description</th>
4833          <th class="th_units">Units</th>
4834          <th class="th_range">Range</th>
4835          <th class="th_tags">Tags</th>
4836        </tr>
4837      </thead>
4838
4839      <tbody>
4840
4841        
4842
4843        
4844
4845        
4846
4847        
4848
4849                
4850          <tr class="entry" id="controls_android.flash.firingPower">
4851            <td class="entry_name" rowspan="3">
4852              android.<wbr/>flash.<wbr/>firing<wbr/>Power
4853            </td>
4854            <td class="entry_type">
4855                <span class="entry_type_name">byte</span>
4856
4857              <span class="entry_type_visibility"> [system]</span>
4858
4859
4860            </td> <!-- entry_type -->
4861
4862            <td class="entry_description">
4863              <p>Power for flash firing/<wbr/>torch</p>
4864            </td>
4865
4866            <td class="entry_units">
4867              10 is max power; 0 is no flash.<wbr/> Linear
4868            </td>
4869
4870            <td class="entry_range">
4871              <p>0 - 10</p>
4872            </td>
4873
4874            <td class="entry_tags">
4875              <ul class="entry_tags">
4876                  <li><a href="#tag_V1">V1</a></li>
4877              </ul>
4878            </td>
4879
4880          </tr>
4881          <tr class="entries_header">
4882            <th class="th_details" colspan="5">Details</th>
4883          </tr>
4884          <tr class="entry_cont">
4885            <td class="entry_details" colspan="5">
4886              <p>Power for snapshot may use a different scale than
4887for torch mode.<wbr/> Only one entry for torch mode will be
4888used</p>
4889            </td>
4890          </tr>
4891
4892
4893          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4894           <!-- end of entry -->
4895        
4896                
4897          <tr class="entry" id="controls_android.flash.firingTime">
4898            <td class="entry_name" rowspan="3">
4899              android.<wbr/>flash.<wbr/>firing<wbr/>Time
4900            </td>
4901            <td class="entry_type">
4902                <span class="entry_type_name">int64</span>
4903
4904              <span class="entry_type_visibility"> [system]</span>
4905
4906
4907            </td> <!-- entry_type -->
4908
4909            <td class="entry_description">
4910              <p>Firing time of flash relative to start of
4911exposure</p>
4912            </td>
4913
4914            <td class="entry_units">
4915              nanoseconds
4916            </td>
4917
4918            <td class="entry_range">
4919              <p>0-(exposure time-flash duration)</p>
4920            </td>
4921
4922            <td class="entry_tags">
4923              <ul class="entry_tags">
4924                  <li><a href="#tag_V1">V1</a></li>
4925              </ul>
4926            </td>
4927
4928          </tr>
4929          <tr class="entries_header">
4930            <th class="th_details" colspan="5">Details</th>
4931          </tr>
4932          <tr class="entry_cont">
4933            <td class="entry_details" colspan="5">
4934              <p>Clamped to (0,<wbr/> exposure time - flash
4935duration).<wbr/></p>
4936            </td>
4937          </tr>
4938
4939
4940          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4941           <!-- end of entry -->
4942        
4943                
4944          <tr class="entry" id="controls_android.flash.mode">
4945            <td class="entry_name" rowspan="3">
4946              android.<wbr/>flash.<wbr/>mode
4947            </td>
4948            <td class="entry_type">
4949                <span class="entry_type_name entry_type_name_enum">byte</span>
4950
4951              <span class="entry_type_visibility"> [public]</span>
4952
4953                <ul class="entry_type_enum">
4954                  <li>
4955                    <span class="entry_type_enum_name">OFF</span>
4956                    <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
4957                  </li>
4958                  <li>
4959                    <span class="entry_type_enum_name">SINGLE</span>
4960                    <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
4961for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
4962<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
4963                  </li>
4964                  <li>
4965                    <span class="entry_type_enum_name">TORCH</span>
4966                    <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
4967                  </li>
4968                </ul>
4969
4970            </td> <!-- entry_type -->
4971
4972            <td class="entry_description">
4973              <p>The desired mode for for the camera device's flash control.<wbr/></p>
4974            </td>
4975
4976            <td class="entry_units">
4977            </td>
4978
4979            <td class="entry_range">
4980            </td>
4981
4982            <td class="entry_tags">
4983              <ul class="entry_tags">
4984                  <li><a href="#tag_BC">BC</a></li>
4985              </ul>
4986            </td>
4987
4988          </tr>
4989          <tr class="entries_header">
4990            <th class="th_details" colspan="5">Details</th>
4991          </tr>
4992          <tr class="entry_cont">
4993            <td class="entry_details" colspan="5">
4994              <p>This control is only effective when flash unit is available
4995(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> != 0</code>).<wbr/></p>
4996<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/>
4997Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
4998ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
4999<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5000<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5001device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5002control should be used along with AE precapture metering sequence
5003(<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>
5004<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5005for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
5006            </td>
5007          </tr>
5008
5009
5010          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5011           <!-- end of entry -->
5012        
5013        
5014
5015      <!-- end of kind -->
5016      </tbody>
5017      <tr><td colspan="6" class="kind">static</td></tr>
5018
5019      <thead class="entries_header">
5020        <tr>
5021          <th class="th_name">Property Name</th>
5022          <th class="th_type">Type</th>
5023          <th class="th_description">Description</th>
5024          <th class="th_units">Units</th>
5025          <th class="th_range">Range</th>
5026          <th class="th_tags">Tags</th>
5027        </tr>
5028      </thead>
5029
5030      <tbody>
5031
5032        
5033
5034        
5035
5036        
5037
5038        
5039                
5040            
5041
5042                
5043          <tr class="entry" id="static_android.flash.info.available">
5044            <td class="entry_name" rowspan="3">
5045              android.<wbr/>flash.<wbr/>info.<wbr/>available
5046            </td>
5047            <td class="entry_type">
5048                <span class="entry_type_name">byte</span>
5049
5050              <span class="entry_type_visibility"> [public]</span>
5051
5052
5053            </td> <!-- entry_type -->
5054
5055            <td class="entry_description">
5056              <p>Whether this camera has a
5057flash</p>
5058            </td>
5059
5060            <td class="entry_units">
5061              boolean (0 = false,<wbr/> otherwise true)
5062            </td>
5063
5064            <td class="entry_range">
5065            </td>
5066
5067            <td class="entry_tags">
5068              <ul class="entry_tags">
5069                  <li><a href="#tag_BC">BC</a></li>
5070              </ul>
5071            </td>
5072
5073          </tr>
5074          <tr class="entries_header">
5075            <th class="th_details" colspan="5">Details</th>
5076          </tr>
5077          <tr class="entry_cont">
5078            <td class="entry_details" colspan="5">
5079              <p>If no flash,<wbr/> none of the flash controls do
5080anything.<wbr/> All other metadata should return 0</p>
5081            </td>
5082          </tr>
5083
5084
5085          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5086           <!-- end of entry -->
5087        
5088                
5089          <tr class="entry" id="static_android.flash.info.chargeDuration">
5090            <td class="entry_name" rowspan="3">
5091              android.<wbr/>flash.<wbr/>info.<wbr/>charge<wbr/>Duration
5092            </td>
5093            <td class="entry_type">
5094                <span class="entry_type_name">int64</span>
5095
5096              <span class="entry_type_visibility"> [system]</span>
5097
5098
5099            </td> <!-- entry_type -->
5100
5101            <td class="entry_description">
5102              <p>Time taken before flash can fire
5103again</p>
5104            </td>
5105
5106            <td class="entry_units">
5107              nanoseconds
5108            </td>
5109
5110            <td class="entry_range">
5111              <p>0-1e9</p>
5112            </td>
5113
5114            <td class="entry_tags">
5115              <ul class="entry_tags">
5116                  <li><a href="#tag_V1">V1</a></li>
5117              </ul>
5118            </td>
5119
5120          </tr>
5121          <tr class="entries_header">
5122            <th class="th_details" colspan="5">Details</th>
5123          </tr>
5124          <tr class="entry_cont">
5125            <td class="entry_details" colspan="5">
5126              <p>1 second too long/<wbr/>too short for recharge? Should
5127this be power-dependent?</p>
5128            </td>
5129          </tr>
5130
5131
5132          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5133           <!-- end of entry -->
5134        
5135        
5136        
5137
5138                
5139          <tr class="entry" id="static_android.flash.colorTemperature">
5140            <td class="entry_name" rowspan="1">
5141              android.<wbr/>flash.<wbr/>color<wbr/>Temperature
5142            </td>
5143            <td class="entry_type">
5144                <span class="entry_type_name">byte</span>
5145
5146              <span class="entry_type_visibility"> [system]</span>
5147
5148
5149            </td> <!-- entry_type -->
5150
5151            <td class="entry_description">
5152              <p>The x,<wbr/>y whitepoint of the
5153flash</p>
5154            </td>
5155
5156            <td class="entry_units">
5157              pair of floats
5158            </td>
5159
5160            <td class="entry_range">
5161              <p>0-1 for both</p>
5162            </td>
5163
5164            <td class="entry_tags">
5165              <ul class="entry_tags">
5166                  <li><a href="#tag_ADV">ADV</a></li>
5167              </ul>
5168            </td>
5169
5170          </tr>
5171
5172
5173          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5174           <!-- end of entry -->
5175        
5176                
5177          <tr class="entry" id="static_android.flash.maxEnergy">
5178            <td class="entry_name" rowspan="1">
5179              android.<wbr/>flash.<wbr/>max<wbr/>Energy
5180            </td>
5181            <td class="entry_type">
5182                <span class="entry_type_name">byte</span>
5183
5184              <span class="entry_type_visibility"> [system]</span>
5185
5186
5187            </td> <!-- entry_type -->
5188
5189            <td class="entry_description">
5190              <p>Max energy output of the flash for a full
5191power single flash</p>
5192            </td>
5193
5194            <td class="entry_units">
5195              lumen-seconds
5196            </td>
5197
5198            <td class="entry_range">
5199              <p>&gt;= 0</p>
5200            </td>
5201
5202            <td class="entry_tags">
5203              <ul class="entry_tags">
5204                  <li><a href="#tag_ADV">ADV</a></li>
5205              </ul>
5206            </td>
5207
5208          </tr>
5209
5210
5211          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5212           <!-- end of entry -->
5213        
5214        
5215
5216      <!-- end of kind -->
5217      </tbody>
5218      <tr><td colspan="6" class="kind">dynamic</td></tr>
5219
5220      <thead class="entries_header">
5221        <tr>
5222          <th class="th_name">Property Name</th>
5223          <th class="th_type">Type</th>
5224          <th class="th_description">Description</th>
5225          <th class="th_units">Units</th>
5226          <th class="th_range">Range</th>
5227          <th class="th_tags">Tags</th>
5228        </tr>
5229      </thead>
5230
5231      <tbody>
5232
5233        
5234
5235        
5236
5237        
5238
5239        
5240
5241                
5242          <tr class="entry" id="dynamic_android.flash.firingPower">
5243            <td class="entry_name" rowspan="3">
5244              android.<wbr/>flash.<wbr/>firing<wbr/>Power
5245            </td>
5246            <td class="entry_type">
5247                <span class="entry_type_name">byte</span>
5248
5249              <span class="entry_type_visibility"> [system]</span>
5250
5251
5252            </td> <!-- entry_type -->
5253
5254            <td class="entry_description">
5255              <p>Power for flash firing/<wbr/>torch</p>
5256            </td>
5257
5258            <td class="entry_units">
5259              10 is max power; 0 is no flash.<wbr/> Linear
5260            </td>
5261
5262            <td class="entry_range">
5263              <p>0 - 10</p>
5264            </td>
5265
5266            <td class="entry_tags">
5267              <ul class="entry_tags">
5268                  <li><a href="#tag_V1">V1</a></li>
5269              </ul>
5270            </td>
5271
5272          </tr>
5273          <tr class="entries_header">
5274            <th class="th_details" colspan="5">Details</th>
5275          </tr>
5276          <tr class="entry_cont">
5277            <td class="entry_details" colspan="5">
5278              <p>Power for snapshot may use a different scale than
5279for torch mode.<wbr/> Only one entry for torch mode will be
5280used</p>
5281            </td>
5282          </tr>
5283
5284
5285          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5286           <!-- end of entry -->
5287        
5288                
5289          <tr class="entry" id="dynamic_android.flash.firingTime">
5290            <td class="entry_name" rowspan="3">
5291              android.<wbr/>flash.<wbr/>firing<wbr/>Time
5292            </td>
5293            <td class="entry_type">
5294                <span class="entry_type_name">int64</span>
5295
5296              <span class="entry_type_visibility"> [system]</span>
5297
5298
5299            </td> <!-- entry_type -->
5300
5301            <td class="entry_description">
5302              <p>Firing time of flash relative to start of
5303exposure</p>
5304            </td>
5305
5306            <td class="entry_units">
5307              nanoseconds
5308            </td>
5309
5310            <td class="entry_range">
5311              <p>0-(exposure time-flash duration)</p>
5312            </td>
5313
5314            <td class="entry_tags">
5315              <ul class="entry_tags">
5316                  <li><a href="#tag_V1">V1</a></li>
5317              </ul>
5318            </td>
5319
5320          </tr>
5321          <tr class="entries_header">
5322            <th class="th_details" colspan="5">Details</th>
5323          </tr>
5324          <tr class="entry_cont">
5325            <td class="entry_details" colspan="5">
5326              <p>Clamped to (0,<wbr/> exposure time - flash
5327duration).<wbr/></p>
5328            </td>
5329          </tr>
5330
5331
5332          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5333           <!-- end of entry -->
5334        
5335                
5336          <tr class="entry" id="dynamic_android.flash.mode">
5337            <td class="entry_name" rowspan="3">
5338              android.<wbr/>flash.<wbr/>mode
5339            </td>
5340            <td class="entry_type">
5341                <span class="entry_type_name entry_type_name_enum">byte</span>
5342
5343              <span class="entry_type_visibility"> [public]</span>
5344
5345                <ul class="entry_type_enum">
5346                  <li>
5347                    <span class="entry_type_enum_name">OFF</span>
5348                    <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
5349                  </li>
5350                  <li>
5351                    <span class="entry_type_enum_name">SINGLE</span>
5352                    <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5353for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5354<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
5355                  </li>
5356                  <li>
5357                    <span class="entry_type_enum_name">TORCH</span>
5358                    <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
5359                  </li>
5360                </ul>
5361
5362            </td> <!-- entry_type -->
5363
5364            <td class="entry_description">
5365              <p>The desired mode for for the camera device's flash control.<wbr/></p>
5366            </td>
5367
5368            <td class="entry_units">
5369            </td>
5370
5371            <td class="entry_range">
5372            </td>
5373
5374            <td class="entry_tags">
5375              <ul class="entry_tags">
5376                  <li><a href="#tag_BC">BC</a></li>
5377              </ul>
5378            </td>
5379
5380          </tr>
5381          <tr class="entries_header">
5382            <th class="th_details" colspan="5">Details</th>
5383          </tr>
5384          <tr class="entry_cont">
5385            <td class="entry_details" colspan="5">
5386              <p>This control is only effective when flash unit is available
5387(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> != 0</code>).<wbr/></p>
5388<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/>
5389Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5390ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5391<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5392<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5393device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5394control should be used along with AE precapture metering sequence
5395(<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>
5396<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5397for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
5398            </td>
5399          </tr>
5400
5401
5402          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5403           <!-- end of entry -->
5404        
5405                
5406          <tr class="entry" id="dynamic_android.flash.state">
5407            <td class="entry_name" rowspan="1">
5408              android.<wbr/>flash.<wbr/>state
5409            </td>
5410            <td class="entry_type">
5411                <span class="entry_type_name entry_type_name_enum">byte</span>
5412
5413              <span class="entry_type_visibility"> [public]</span>
5414
5415                <ul class="entry_type_enum">
5416                  <li>
5417                    <span class="entry_type_enum_name">UNAVAILABLE</span>
5418                    <span class="entry_type_enum_notes"><p>No flash on camera</p></span>
5419                  </li>
5420                  <li>
5421                    <span class="entry_type_enum_name">CHARGING</span>
5422                    <span class="entry_type_enum_notes"><p>if android.<wbr/>flash.<wbr/>available is true Flash is
5423charging and cannot be fired</p></span>
5424                  </li>
5425                  <li>
5426                    <span class="entry_type_enum_name">READY</span>
5427                    <span class="entry_type_enum_notes"><p>if android.<wbr/>flash.<wbr/>available is true Flash is
5428ready to fire</p></span>
5429                  </li>
5430                  <li>
5431                    <span class="entry_type_enum_name">FIRED</span>
5432                    <span class="entry_type_enum_notes"><p>if android.<wbr/>flash.<wbr/>available is true Flash fired
5433for this capture</p></span>
5434                  </li>
5435                </ul>
5436
5437            </td> <!-- entry_type -->
5438
5439            <td class="entry_description">
5440              <p>Current state of the flash
5441unit</p>
5442            </td>
5443
5444            <td class="entry_units">
5445            </td>
5446
5447            <td class="entry_range">
5448            </td>
5449
5450            <td class="entry_tags">
5451            </td>
5452
5453          </tr>
5454
5455
5456          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5457           <!-- end of entry -->
5458        
5459        
5460
5461      <!-- end of kind -->
5462      </tbody>
5463
5464  <!-- end of section -->
5465  <tr><td colspan="6" id="section_geometric" class="section">geometric</td></tr>
5466
5467
5468      <tr><td colspan="6" class="kind">controls</td></tr>
5469
5470      <thead class="entries_header">
5471        <tr>
5472          <th class="th_name">Property Name</th>
5473          <th class="th_type">Type</th>
5474          <th class="th_description">Description</th>
5475          <th class="th_units">Units</th>
5476          <th class="th_range">Range</th>
5477          <th class="th_tags">Tags</th>
5478        </tr>
5479      </thead>
5480
5481      <tbody>
5482
5483        
5484
5485        
5486
5487        
5488
5489        
5490
5491                
5492          <tr class="entry" id="controls_android.geometric.mode">
5493            <td class="entry_name" rowspan="1">
5494              android.<wbr/>geometric.<wbr/>mode
5495            </td>
5496            <td class="entry_type">
5497                <span class="entry_type_name entry_type_name_enum">byte</span>
5498
5499              <span class="entry_type_visibility"> [system]</span>
5500
5501                <ul class="entry_type_enum">
5502                  <li>
5503                    <span class="entry_type_enum_name">OFF</span>
5504                    <span class="entry_type_enum_notes"><p>No geometric correction is
5505applied</p></span>
5506                  </li>
5507                  <li>
5508                    <span class="entry_type_enum_name">FAST</span>
5509                    <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw
5510bayer output</p></span>
5511                  </li>
5512                  <li>
5513                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
5514                    <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5515quality</p></span>
5516                  </li>
5517                </ul>
5518
5519            </td> <!-- entry_type -->
5520
5521            <td class="entry_description">
5522              <p>Operating mode of geometric
5523correction</p>
5524            </td>
5525
5526            <td class="entry_units">
5527            </td>
5528
5529            <td class="entry_range">
5530            </td>
5531
5532            <td class="entry_tags">
5533            </td>
5534
5535          </tr>
5536
5537
5538          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5539           <!-- end of entry -->
5540        
5541                
5542          <tr class="entry" id="controls_android.geometric.strength">
5543            <td class="entry_name" rowspan="1">
5544              android.<wbr/>geometric.<wbr/>strength
5545            </td>
5546            <td class="entry_type">
5547                <span class="entry_type_name">byte</span>
5548
5549              <span class="entry_type_visibility"> [system]</span>
5550
5551
5552            </td> <!-- entry_type -->
5553
5554            <td class="entry_description">
5555              <p>Control the amount of shading correction
5556applied to the images</p>
5557            </td>
5558
5559            <td class="entry_units">
5560              unitless: 1-10; 10 is full shading
5561          compensation
5562            </td>
5563
5564            <td class="entry_range">
5565            </td>
5566
5567            <td class="entry_tags">
5568              <ul class="entry_tags">
5569                  <li><a href="#tag_ADV">ADV</a></li>
5570              </ul>
5571            </td>
5572
5573          </tr>
5574
5575
5576          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5577           <!-- end of entry -->
5578        
5579        
5580
5581      <!-- end of kind -->
5582      </tbody>
5583
5584  <!-- end of section -->
5585  <tr><td colspan="6" id="section_hotPixel" class="section">hotPixel</td></tr>
5586
5587
5588      <tr><td colspan="6" class="kind">controls</td></tr>
5589
5590      <thead class="entries_header">
5591        <tr>
5592          <th class="th_name">Property Name</th>
5593          <th class="th_type">Type</th>
5594          <th class="th_description">Description</th>
5595          <th class="th_units">Units</th>
5596          <th class="th_range">Range</th>
5597          <th class="th_tags">Tags</th>
5598        </tr>
5599      </thead>
5600
5601      <tbody>
5602
5603        
5604
5605        
5606
5607        
5608
5609        
5610
5611                
5612          <tr class="entry" id="controls_android.hotPixel.mode">
5613            <td class="entry_name" rowspan="1">
5614              android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
5615            </td>
5616            <td class="entry_type">
5617                <span class="entry_type_name entry_type_name_enum">byte</span>
5618
5619              <span class="entry_type_visibility"> [system]</span>
5620
5621                <ul class="entry_type_enum">
5622                  <li>
5623                    <span class="entry_type_enum_name">OFF</span>
5624                    <span class="entry_type_enum_notes"><p>No hot pixel correction can be
5625applied</p></span>
5626                  </li>
5627                  <li>
5628                    <span class="entry_type_enum_name">FAST</span>
5629                    <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
5630Bayer output</p></span>
5631                  </li>
5632                  <li>
5633                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
5634                    <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5635quality</p></span>
5636                  </li>
5637                </ul>
5638
5639            </td> <!-- entry_type -->
5640
5641            <td class="entry_description">
5642              <p>Set operational mode for hot pixel
5643correction</p>
5644            </td>
5645
5646            <td class="entry_units">
5647            </td>
5648
5649            <td class="entry_range">
5650            </td>
5651
5652            <td class="entry_tags">
5653              <ul class="entry_tags">
5654                  <li><a href="#tag_V1">V1</a></li>
5655              </ul>
5656            </td>
5657
5658          </tr>
5659
5660
5661          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5662           <!-- end of entry -->
5663        
5664        
5665
5666      <!-- end of kind -->
5667      </tbody>
5668      <tr><td colspan="6" class="kind">static</td></tr>
5669
5670      <thead class="entries_header">
5671        <tr>
5672          <th class="th_name">Property Name</th>
5673          <th class="th_type">Type</th>
5674          <th class="th_description">Description</th>
5675          <th class="th_units">Units</th>
5676          <th class="th_range">Range</th>
5677          <th class="th_tags">Tags</th>
5678        </tr>
5679      </thead>
5680
5681      <tbody>
5682
5683        
5684
5685        
5686
5687        
5688
5689        
5690                
5691            
5692
5693                
5694          <tr class="entry" id="static_android.hotPixel.info.map">
5695            <td class="entry_name" rowspan="1">
5696              android.<wbr/>hot<wbr/>Pixel.<wbr/>info.<wbr/>map
5697            </td>
5698            <td class="entry_type">
5699                <span class="entry_type_name">int32</span>
5700                <span class="entry_type_container">x</span>
5701
5702                <span class="entry_type_array">
5703                  2 x n
5704                </span>
5705              <span class="entry_type_visibility"> [system]</span>
5706                <div class="entry_type_notes">list of coordinates based on android.<wbr/>sensor.<wbr/>pixel<wbr/>Array<wbr/>Size</div>
5707
5708
5709            </td> <!-- entry_type -->
5710
5711            <td class="entry_description">
5712              <p>Location of hot/<wbr/>defective pixels on
5713sensor</p>
5714            </td>
5715
5716            <td class="entry_units">
5717            </td>
5718
5719            <td class="entry_range">
5720            </td>
5721
5722            <td class="entry_tags">
5723              <ul class="entry_tags">
5724                  <li><a href="#tag_ADV">ADV</a></li>
5725              </ul>
5726            </td>
5727
5728          </tr>
5729
5730
5731          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5732           <!-- end of entry -->
5733        
5734        
5735        
5736
5737        
5738
5739      <!-- end of kind -->
5740      </tbody>
5741      <tr><td colspan="6" class="kind">dynamic</td></tr>
5742
5743      <thead class="entries_header">
5744        <tr>
5745          <th class="th_name">Property Name</th>
5746          <th class="th_type">Type</th>
5747          <th class="th_description">Description</th>
5748          <th class="th_units">Units</th>
5749          <th class="th_range">Range</th>
5750          <th class="th_tags">Tags</th>
5751        </tr>
5752      </thead>
5753
5754      <tbody>
5755
5756        
5757
5758        
5759
5760        
5761
5762        
5763
5764                
5765          <tr class="entry" id="dynamic_android.hotPixel.mode">
5766            <td class="entry_name" rowspan="1">
5767              android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
5768            </td>
5769            <td class="entry_type">
5770                <span class="entry_type_name entry_type_name_enum">byte</span>
5771
5772              <span class="entry_type_visibility"> [system]</span>
5773
5774                <ul class="entry_type_enum">
5775                  <li>
5776                    <span class="entry_type_enum_name">OFF</span>
5777                    <span class="entry_type_enum_notes"><p>No hot pixel correction can be
5778applied</p></span>
5779                  </li>
5780                  <li>
5781                    <span class="entry_type_enum_name">FAST</span>
5782                    <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
5783Bayer output</p></span>
5784                  </li>
5785                  <li>
5786                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
5787                    <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5788quality</p></span>
5789                  </li>
5790                </ul>
5791
5792            </td> <!-- entry_type -->
5793
5794            <td class="entry_description">
5795              <p>Set operational mode for hot pixel
5796correction</p>
5797            </td>
5798
5799            <td class="entry_units">
5800            </td>
5801
5802            <td class="entry_range">
5803            </td>
5804
5805            <td class="entry_tags">
5806              <ul class="entry_tags">
5807                  <li><a href="#tag_V1">V1</a></li>
5808              </ul>
5809            </td>
5810
5811          </tr>
5812
5813
5814          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5815           <!-- end of entry -->
5816        
5817        
5818
5819      <!-- end of kind -->
5820      </tbody>
5821
5822  <!-- end of section -->
5823  <tr><td colspan="6" id="section_jpeg" class="section">jpeg</td></tr>
5824
5825
5826      <tr><td colspan="6" class="kind">controls</td></tr>
5827
5828      <thead class="entries_header">
5829        <tr>
5830          <th class="th_name">Property Name</th>
5831          <th class="th_type">Type</th>
5832          <th class="th_description">Description</th>
5833          <th class="th_units">Units</th>
5834          <th class="th_range">Range</th>
5835          <th class="th_tags">Tags</th>
5836        </tr>
5837      </thead>
5838
5839      <tbody>
5840
5841        
5842
5843        
5844
5845        
5846
5847        
5848
5849                
5850          <tr class="entry" id="controls_android.jpeg.gpsCoordinates">
5851            <td class="entry_name" rowspan="1">
5852              android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
5853            </td>
5854            <td class="entry_type">
5855                <span class="entry_type_name">double</span>
5856                <span class="entry_type_container">x</span>
5857
5858                <span class="entry_type_array">
5859                  3
5860                </span>
5861              <span class="entry_type_visibility"> [public]</span>
5862                <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div>
5863
5864
5865            </td> <!-- entry_type -->
5866
5867            <td class="entry_description">
5868              <p>GPS coordinates to include in output JPEG
5869EXIF</p>
5870            </td>
5871
5872            <td class="entry_units">
5873            </td>
5874
5875            <td class="entry_range">
5876              <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
5877            </td>
5878
5879            <td class="entry_tags">
5880              <ul class="entry_tags">
5881                  <li><a href="#tag_BC">BC</a></li>
5882              </ul>
5883            </td>
5884
5885          </tr>
5886
5887
5888          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5889           <!-- end of entry -->
5890        
5891                
5892          <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod">
5893            <td class="entry_name" rowspan="1">
5894              android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
5895            </td>
5896            <td class="entry_type">
5897                <span class="entry_type_name">byte</span>
5898
5899              <span class="entry_type_visibility"> [public as string]</span>
5900
5901
5902            </td> <!-- entry_type -->
5903
5904            <td class="entry_description">
5905              <p>32 characters describing GPS algorithm to
5906include in EXIF</p>
5907            </td>
5908
5909            <td class="entry_units">
5910              UTF-8 null-terminated string
5911            </td>
5912
5913            <td class="entry_range">
5914            </td>
5915
5916            <td class="entry_tags">
5917              <ul class="entry_tags">
5918                  <li><a href="#tag_BC">BC</a></li>
5919              </ul>
5920            </td>
5921
5922          </tr>
5923
5924
5925          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5926           <!-- end of entry -->
5927        
5928                
5929          <tr class="entry" id="controls_android.jpeg.gpsTimestamp">
5930            <td class="entry_name" rowspan="1">
5931              android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
5932            </td>
5933            <td class="entry_type">
5934                <span class="entry_type_name">int64</span>
5935
5936              <span class="entry_type_visibility"> [public]</span>
5937
5938
5939            </td> <!-- entry_type -->
5940
5941            <td class="entry_description">
5942              <p>Time GPS fix was made to include in
5943EXIF</p>
5944            </td>
5945
5946            <td class="entry_units">
5947              UTC in seconds since January 1,<wbr/> 1970
5948            </td>
5949
5950            <td class="entry_range">
5951            </td>
5952
5953            <td class="entry_tags">
5954              <ul class="entry_tags">
5955                  <li><a href="#tag_BC">BC</a></li>
5956              </ul>
5957            </td>
5958
5959          </tr>
5960
5961
5962          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5963           <!-- end of entry -->
5964        
5965                
5966          <tr class="entry" id="controls_android.jpeg.orientation">
5967            <td class="entry_name" rowspan="1">
5968              android.<wbr/>jpeg.<wbr/>orientation
5969            </td>
5970            <td class="entry_type">
5971                <span class="entry_type_name">int32</span>
5972
5973              <span class="entry_type_visibility"> [public]</span>
5974
5975
5976            </td> <!-- entry_type -->
5977
5978            <td class="entry_description">
5979              <p>Orientation of JPEG image to
5980write</p>
5981            </td>
5982
5983            <td class="entry_units">
5984              Degrees in multiples of 90
5985            </td>
5986
5987            <td class="entry_range">
5988              <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
5989            </td>
5990
5991            <td class="entry_tags">
5992              <ul class="entry_tags">
5993                  <li><a href="#tag_BC">BC</a></li>
5994              </ul>
5995            </td>
5996
5997          </tr>
5998
5999
6000          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6001           <!-- end of entry -->
6002        
6003                
6004          <tr class="entry" id="controls_android.jpeg.quality">
6005            <td class="entry_name" rowspan="3">
6006              android.<wbr/>jpeg.<wbr/>quality
6007            </td>
6008            <td class="entry_type">
6009                <span class="entry_type_name">byte</span>
6010
6011              <span class="entry_type_visibility"> [public]</span>
6012
6013
6014            </td> <!-- entry_type -->
6015
6016            <td class="entry_description">
6017              <p>Compression quality of the final JPEG
6018image</p>
6019            </td>
6020
6021            <td class="entry_units">
6022            </td>
6023
6024            <td class="entry_range">
6025              <p>1-100; larger is higher quality</p>
6026            </td>
6027
6028            <td class="entry_tags">
6029              <ul class="entry_tags">
6030                  <li><a href="#tag_BC">BC</a></li>
6031              </ul>
6032            </td>
6033
6034          </tr>
6035          <tr class="entries_header">
6036            <th class="th_details" colspan="5">Details</th>
6037          </tr>
6038          <tr class="entry_cont">
6039            <td class="entry_details" colspan="5">
6040              <p>85-95 is typical usage range</p>
6041            </td>
6042          </tr>
6043
6044
6045          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6046           <!-- end of entry -->
6047        
6048                
6049          <tr class="entry" id="controls_android.jpeg.thumbnailQuality">
6050            <td class="entry_name" rowspan="1">
6051              android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
6052            </td>
6053            <td class="entry_type">
6054                <span class="entry_type_name">byte</span>
6055
6056              <span class="entry_type_visibility"> [public]</span>
6057
6058
6059            </td> <!-- entry_type -->
6060
6061            <td class="entry_description">
6062              <p>Compression quality of JPEG
6063thumbnail</p>
6064            </td>
6065
6066            <td class="entry_units">
6067            </td>
6068
6069            <td class="entry_range">
6070              <p>1-100; larger is higher quality</p>
6071            </td>
6072
6073            <td class="entry_tags">
6074              <ul class="entry_tags">
6075                  <li><a href="#tag_BC">BC</a></li>
6076              </ul>
6077            </td>
6078
6079          </tr>
6080
6081
6082          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6083           <!-- end of entry -->
6084        
6085                
6086          <tr class="entry" id="controls_android.jpeg.thumbnailSize">
6087            <td class="entry_name" rowspan="3">
6088              android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
6089            </td>
6090            <td class="entry_type">
6091                <span class="entry_type_name">int32</span>
6092                <span class="entry_type_container">x</span>
6093
6094                <span class="entry_type_array">
6095                  2
6096                </span>
6097              <span class="entry_type_visibility"> [public as size]</span>
6098
6099
6100            </td> <!-- entry_type -->
6101
6102            <td class="entry_description">
6103              <p>Resolution of embedded JPEG thumbnail</p>
6104            </td>
6105
6106            <td class="entry_units">
6107            </td>
6108
6109            <td class="entry_range">
6110              <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>
6111            </td>
6112
6113            <td class="entry_tags">
6114              <ul class="entry_tags">
6115                  <li><a href="#tag_BC">BC</a></li>
6116              </ul>
6117            </td>
6118
6119          </tr>
6120          <tr class="entries_header">
6121            <th class="th_details" colspan="5">Details</th>
6122          </tr>
6123          <tr class="entry_cont">
6124            <td class="entry_details" colspan="5">
6125              <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6126but the captured JPEG will still be a valid image.<wbr/></p>
6127<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6128the same aspect ratio as the jpeg image.<wbr/></p>
6129            </td>
6130          </tr>
6131
6132
6133          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6134           <!-- end of entry -->
6135        
6136        
6137
6138      <!-- end of kind -->
6139      </tbody>
6140      <tr><td colspan="6" class="kind">static</td></tr>
6141
6142      <thead class="entries_header">
6143        <tr>
6144          <th class="th_name">Property Name</th>
6145          <th class="th_type">Type</th>
6146          <th class="th_description">Description</th>
6147          <th class="th_units">Units</th>
6148          <th class="th_range">Range</th>
6149          <th class="th_tags">Tags</th>
6150        </tr>
6151      </thead>
6152
6153      <tbody>
6154
6155        
6156
6157        
6158
6159        
6160
6161        
6162
6163                
6164          <tr class="entry" id="static_android.jpeg.availableThumbnailSizes">
6165            <td class="entry_name" rowspan="3">
6166              android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes
6167            </td>
6168            <td class="entry_type">
6169                <span class="entry_type_name">int32</span>
6170                <span class="entry_type_container">x</span>
6171
6172                <span class="entry_type_array">
6173                  2 x n
6174                </span>
6175              <span class="entry_type_visibility"> [public as size]</span>
6176
6177
6178            </td> <!-- entry_type -->
6179
6180            <td class="entry_description">
6181              <p>Supported resolutions for the JPEG thumbnail</p>
6182            </td>
6183
6184            <td class="entry_units">
6185            </td>
6186
6187            <td class="entry_range">
6188              <p>Will include at least one valid resolution,<wbr/> plus
6189(0,<wbr/>0) for no thumbnail generation,<wbr/> and each size will be distinct.<wbr/></p>
6190            </td>
6191
6192            <td class="entry_tags">
6193              <ul class="entry_tags">
6194                  <li><a href="#tag_BC">BC</a></li>
6195              </ul>
6196            </td>
6197
6198          </tr>
6199          <tr class="entries_header">
6200            <th class="th_details" colspan="5">Details</th>
6201          </tr>
6202          <tr class="entry_cont">
6203            <td class="entry_details" colspan="5">
6204              <p>Below condiditions will be satisfied for this size list:</p>
6205<ul>
6206<li>The sizes will be sorted by increasing pixel area (width x height).<wbr/>
6207If several resolutions have the same area,<wbr/> they will be sorted by increasing width.<wbr/></li>
6208<li>The aspect ratio of the largest thumbnail size will be same as the
6209aspect ratio of largest size in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a>.<wbr/>
6210The largest size is defined as the size that has the largest pixel area
6211in a given size list.<wbr/></li>
6212<li>Each size in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a> will have at least
6213one corresponding size that has the same aspect ratio in availableThumbnailSizes,<wbr/>
6214and vice versa.<wbr/></li>
6215<li>All non (0,<wbr/> 0) sizes will have non-zero widths and heights.<wbr/></li>
6216</ul>
6217            </td>
6218          </tr>
6219
6220
6221          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6222           <!-- end of entry -->
6223        
6224                
6225          <tr class="entry" id="static_android.jpeg.maxSize">
6226            <td class="entry_name" rowspan="3">
6227              android.<wbr/>jpeg.<wbr/>max<wbr/>Size
6228            </td>
6229            <td class="entry_type">
6230                <span class="entry_type_name">int32</span>
6231
6232              <span class="entry_type_visibility"> [system]</span>
6233
6234
6235            </td> <!-- entry_type -->
6236
6237            <td class="entry_description">
6238              <p>Maximum size in bytes for the compressed
6239JPEG buffer</p>
6240            </td>
6241
6242            <td class="entry_units">
6243            </td>
6244
6245            <td class="entry_range">
6246              <p>Must be large enough to fit any JPEG produced by
6247the camera</p>
6248            </td>
6249
6250            <td class="entry_tags">
6251            </td>
6252
6253          </tr>
6254          <tr class="entries_header">
6255            <th class="th_details" colspan="5">Details</th>
6256          </tr>
6257          <tr class="entry_cont">
6258            <td class="entry_details" colspan="5">
6259              <p>This is used for sizing the gralloc buffers for
6260JPEG</p>
6261            </td>
6262          </tr>
6263
6264
6265          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6266           <!-- end of entry -->
6267        
6268        
6269
6270      <!-- end of kind -->
6271      </tbody>
6272      <tr><td colspan="6" class="kind">dynamic</td></tr>
6273
6274      <thead class="entries_header">
6275        <tr>
6276          <th class="th_name">Property Name</th>
6277          <th class="th_type">Type</th>
6278          <th class="th_description">Description</th>
6279          <th class="th_units">Units</th>
6280          <th class="th_range">Range</th>
6281          <th class="th_tags">Tags</th>
6282        </tr>
6283      </thead>
6284
6285      <tbody>
6286
6287        
6288
6289        
6290
6291        
6292
6293        
6294
6295                
6296          <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates">
6297            <td class="entry_name" rowspan="1">
6298              android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
6299            </td>
6300            <td class="entry_type">
6301                <span class="entry_type_name">double</span>
6302                <span class="entry_type_container">x</span>
6303
6304                <span class="entry_type_array">
6305                  3
6306                </span>
6307              <span class="entry_type_visibility"> [public]</span>
6308                <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div>
6309
6310
6311            </td> <!-- entry_type -->
6312
6313            <td class="entry_description">
6314              <p>GPS coordinates to include in output JPEG
6315EXIF</p>
6316            </td>
6317
6318            <td class="entry_units">
6319            </td>
6320
6321            <td class="entry_range">
6322              <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
6323            </td>
6324
6325            <td class="entry_tags">
6326              <ul class="entry_tags">
6327                  <li><a href="#tag_BC">BC</a></li>
6328              </ul>
6329            </td>
6330
6331          </tr>
6332
6333
6334          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6335           <!-- end of entry -->
6336        
6337                
6338          <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod">
6339            <td class="entry_name" rowspan="1">
6340              android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
6341            </td>
6342            <td class="entry_type">
6343                <span class="entry_type_name">byte</span>
6344
6345              <span class="entry_type_visibility"> [public as string]</span>
6346
6347
6348            </td> <!-- entry_type -->
6349
6350            <td class="entry_description">
6351              <p>32 characters describing GPS algorithm to
6352include in EXIF</p>
6353            </td>
6354
6355            <td class="entry_units">
6356              UTF-8 null-terminated string
6357            </td>
6358
6359            <td class="entry_range">
6360            </td>
6361
6362            <td class="entry_tags">
6363              <ul class="entry_tags">
6364                  <li><a href="#tag_BC">BC</a></li>
6365              </ul>
6366            </td>
6367
6368          </tr>
6369
6370
6371          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6372           <!-- end of entry -->
6373        
6374                
6375          <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp">
6376            <td class="entry_name" rowspan="1">
6377              android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
6378            </td>
6379            <td class="entry_type">
6380                <span class="entry_type_name">int64</span>
6381
6382              <span class="entry_type_visibility"> [public]</span>
6383
6384
6385            </td> <!-- entry_type -->
6386
6387            <td class="entry_description">
6388              <p>Time GPS fix was made to include in
6389EXIF</p>
6390            </td>
6391
6392            <td class="entry_units">
6393              UTC in seconds since January 1,<wbr/> 1970
6394            </td>
6395
6396            <td class="entry_range">
6397            </td>
6398
6399            <td class="entry_tags">
6400              <ul class="entry_tags">
6401                  <li><a href="#tag_BC">BC</a></li>
6402              </ul>
6403            </td>
6404
6405          </tr>
6406
6407
6408          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6409           <!-- end of entry -->
6410        
6411                
6412          <tr class="entry" id="dynamic_android.jpeg.orientation">
6413            <td class="entry_name" rowspan="1">
6414              android.<wbr/>jpeg.<wbr/>orientation
6415            </td>
6416            <td class="entry_type">
6417                <span class="entry_type_name">int32</span>
6418
6419              <span class="entry_type_visibility"> [public]</span>
6420
6421
6422            </td> <!-- entry_type -->
6423
6424            <td class="entry_description">
6425              <p>Orientation of JPEG image to
6426write</p>
6427            </td>
6428
6429            <td class="entry_units">
6430              Degrees in multiples of 90
6431            </td>
6432
6433            <td class="entry_range">
6434              <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
6435            </td>
6436
6437            <td class="entry_tags">
6438              <ul class="entry_tags">
6439                  <li><a href="#tag_BC">BC</a></li>
6440              </ul>
6441            </td>
6442
6443          </tr>
6444
6445
6446          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6447           <!-- end of entry -->
6448        
6449                
6450          <tr class="entry" id="dynamic_android.jpeg.quality">
6451            <td class="entry_name" rowspan="3">
6452              android.<wbr/>jpeg.<wbr/>quality
6453            </td>
6454            <td class="entry_type">
6455                <span class="entry_type_name">byte</span>
6456
6457              <span class="entry_type_visibility"> [public]</span>
6458
6459
6460            </td> <!-- entry_type -->
6461
6462            <td class="entry_description">
6463              <p>Compression quality of the final JPEG
6464image</p>
6465            </td>
6466
6467            <td class="entry_units">
6468            </td>
6469
6470            <td class="entry_range">
6471              <p>1-100; larger is higher quality</p>
6472            </td>
6473
6474            <td class="entry_tags">
6475              <ul class="entry_tags">
6476                  <li><a href="#tag_BC">BC</a></li>
6477              </ul>
6478            </td>
6479
6480          </tr>
6481          <tr class="entries_header">
6482            <th class="th_details" colspan="5">Details</th>
6483          </tr>
6484          <tr class="entry_cont">
6485            <td class="entry_details" colspan="5">
6486              <p>85-95 is typical usage range</p>
6487            </td>
6488          </tr>
6489
6490
6491          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6492           <!-- end of entry -->
6493        
6494                
6495          <tr class="entry" id="dynamic_android.jpeg.size">
6496            <td class="entry_name" rowspan="3">
6497              android.<wbr/>jpeg.<wbr/>size
6498            </td>
6499            <td class="entry_type">
6500                <span class="entry_type_name">int32</span>
6501
6502              <span class="entry_type_visibility"> [system]</span>
6503
6504
6505            </td> <!-- entry_type -->
6506
6507            <td class="entry_description">
6508              <p>The size of the compressed JPEG image,<wbr/> in
6509bytes</p>
6510            </td>
6511
6512            <td class="entry_units">
6513            </td>
6514
6515            <td class="entry_range">
6516              <p>&gt;= 0</p>
6517            </td>
6518
6519            <td class="entry_tags">
6520            </td>
6521
6522          </tr>
6523          <tr class="entries_header">
6524            <th class="th_details" colspan="5">Details</th>
6525          </tr>
6526          <tr class="entry_cont">
6527            <td class="entry_details" colspan="5">
6528              <p>If no JPEG output is produced for the request,<wbr/>
6529this must be 0.<wbr/></p>
6530<p>Otherwise,<wbr/> this describes the real size of the compressed
6531JPEG image placed in the output stream.<wbr/>  More specifically,<wbr/>
6532if <a href="#static_android.jpeg.maxSize">android.<wbr/>jpeg.<wbr/>max<wbr/>Size</a> = 1000000,<wbr/> and a specific capture
6533has <a href="#dynamic_android.jpeg.size">android.<wbr/>jpeg.<wbr/>size</a> = 500000,<wbr/> then the output buffer from
6534the JPEG stream will be 1000000 bytes,<wbr/> of which the first
6535500000 make up the real data.<wbr/></p>
6536            </td>
6537          </tr>
6538
6539
6540          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6541           <!-- end of entry -->
6542        
6543                
6544          <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality">
6545            <td class="entry_name" rowspan="1">
6546              android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
6547            </td>
6548            <td class="entry_type">
6549                <span class="entry_type_name">byte</span>
6550
6551              <span class="entry_type_visibility"> [public]</span>
6552
6553
6554            </td> <!-- entry_type -->
6555
6556            <td class="entry_description">
6557              <p>Compression quality of JPEG
6558thumbnail</p>
6559            </td>
6560
6561            <td class="entry_units">
6562            </td>
6563
6564            <td class="entry_range">
6565              <p>1-100; larger is higher quality</p>
6566            </td>
6567
6568            <td class="entry_tags">
6569              <ul class="entry_tags">
6570                  <li><a href="#tag_BC">BC</a></li>
6571              </ul>
6572            </td>
6573
6574          </tr>
6575
6576
6577          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6578           <!-- end of entry -->
6579        
6580                
6581          <tr class="entry" id="dynamic_android.jpeg.thumbnailSize">
6582            <td class="entry_name" rowspan="3">
6583              android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
6584            </td>
6585            <td class="entry_type">
6586                <span class="entry_type_name">int32</span>
6587                <span class="entry_type_container">x</span>
6588
6589                <span class="entry_type_array">
6590                  2
6591                </span>
6592              <span class="entry_type_visibility"> [public as size]</span>
6593
6594
6595            </td> <!-- entry_type -->
6596
6597            <td class="entry_description">
6598              <p>Resolution of embedded JPEG thumbnail</p>
6599            </td>
6600
6601            <td class="entry_units">
6602            </td>
6603
6604            <td class="entry_range">
6605              <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>
6606            </td>
6607
6608            <td class="entry_tags">
6609              <ul class="entry_tags">
6610                  <li><a href="#tag_BC">BC</a></li>
6611              </ul>
6612            </td>
6613
6614          </tr>
6615          <tr class="entries_header">
6616            <th class="th_details" colspan="5">Details</th>
6617          </tr>
6618          <tr class="entry_cont">
6619            <td class="entry_details" colspan="5">
6620              <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6621but the captured JPEG will still be a valid image.<wbr/></p>
6622<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6623the same aspect ratio as the jpeg image.<wbr/></p>
6624            </td>
6625          </tr>
6626
6627
6628          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6629           <!-- end of entry -->
6630        
6631        
6632
6633      <!-- end of kind -->
6634      </tbody>
6635
6636  <!-- end of section -->
6637  <tr><td colspan="6" id="section_lens" class="section">lens</td></tr>
6638
6639
6640      <tr><td colspan="6" class="kind">controls</td></tr>
6641
6642      <thead class="entries_header">
6643        <tr>
6644          <th class="th_name">Property Name</th>
6645          <th class="th_type">Type</th>
6646          <th class="th_description">Description</th>
6647          <th class="th_units">Units</th>
6648          <th class="th_range">Range</th>
6649          <th class="th_tags">Tags</th>
6650        </tr>
6651      </thead>
6652
6653      <tbody>
6654
6655        
6656
6657        
6658
6659        
6660
6661        
6662
6663                
6664          <tr class="entry" id="controls_android.lens.aperture">
6665            <td class="entry_name" rowspan="3">
6666              android.<wbr/>lens.<wbr/>aperture
6667            </td>
6668            <td class="entry_type">
6669                <span class="entry_type_name">float</span>
6670
6671              <span class="entry_type_visibility"> [public]</span>
6672
6673
6674            </td> <!-- entry_type -->
6675
6676            <td class="entry_description">
6677              <p>The ratio of lens focal length to the effective
6678aperture diameter.<wbr/></p>
6679            </td>
6680
6681            <td class="entry_units">
6682              f-number (f/<wbr/>NNN)
6683            </td>
6684
6685            <td class="entry_range">
6686              <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p>
6687            </td>
6688
6689            <td class="entry_tags">
6690              <ul class="entry_tags">
6691                  <li><a href="#tag_V1">V1</a></li>
6692              </ul>
6693            </td>
6694
6695          </tr>
6696          <tr class="entries_header">
6697            <th class="th_details" colspan="5">Details</th>
6698          </tr>
6699          <tr class="entry_cont">
6700            <td class="entry_details" colspan="5">
6701              <p>This will only be supported on the camera devices that
6702have variable aperture lens.<wbr/> The aperture value can only be
6703one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
6704<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
6705this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
6706<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
6707to achieve manual exposure control.<wbr/></p>
6708<p>The requested aperture value may take several frames to reach the
6709requested value; the camera device will report the current (intermediate)
6710aperture size in capture result metadata while the aperture is changing.<wbr/></p>
6711<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
6712the ON modes,<wbr/> this will be overridden by the camera device
6713auto-exposure algorithm,<wbr/> the overridden values are then provided
6714back to the user in the corresponding result.<wbr/></p>
6715            </td>
6716          </tr>
6717
6718
6719          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6720           <!-- end of entry -->
6721        
6722                
6723          <tr class="entry" id="controls_android.lens.filterDensity">
6724            <td class="entry_name" rowspan="3">
6725              android.<wbr/>lens.<wbr/>filter<wbr/>Density
6726            </td>
6727            <td class="entry_type">
6728                <span class="entry_type_name">float</span>
6729
6730              <span class="entry_type_visibility"> [public]</span>
6731
6732
6733            </td> <!-- entry_type -->
6734
6735            <td class="entry_description">
6736              <p>State of lens neutral density filter(s).<wbr/></p>
6737            </td>
6738
6739            <td class="entry_units">
6740              Steps of Exposure Value (EV).<wbr/>
6741            </td>
6742
6743            <td class="entry_range">
6744              <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p>
6745            </td>
6746
6747            <td class="entry_tags">
6748              <ul class="entry_tags">
6749                  <li><a href="#tag_V1">V1</a></li>
6750              </ul>
6751            </td>
6752
6753          </tr>
6754          <tr class="entries_header">
6755            <th class="th_details" colspan="5">Details</th>
6756          </tr>
6757          <tr class="entry_cont">
6758            <td class="entry_details" colspan="5">
6759              <p>This will not be supported on most camera devices.<wbr/> On devices
6760where this is supported,<wbr/> this may only be set to one of the
6761values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
6762<p>Lens filters are typically used to lower the amount of light the
6763sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
6764step is the standard logarithmic representation,<wbr/> which are
6765non-negative,<wbr/> and inversely proportional to the amount of light
6766hitting the sensor.<wbr/>  For example,<wbr/> setting this to 0 would result
6767in no reduction of the incoming light,<wbr/> and setting this to 2 would
6768mean that the filter is set to reduce incoming light by two stops
6769(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
6770            </td>
6771          </tr>
6772
6773
6774          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6775           <!-- end of entry -->
6776        
6777                
6778          <tr class="entry" id="controls_android.lens.focalLength">
6779            <td class="entry_name" rowspan="3">
6780              android.<wbr/>lens.<wbr/>focal<wbr/>Length
6781            </td>
6782            <td class="entry_type">
6783                <span class="entry_type_name">float</span>
6784
6785              <span class="entry_type_visibility"> [public]</span>
6786
6787
6788            </td> <!-- entry_type -->
6789
6790            <td class="entry_description">
6791              <p>Lens optical zoom setting</p>
6792            </td>
6793
6794            <td class="entry_units">
6795              focal length in mm
6796            </td>
6797
6798            <td class="entry_range">
6799              <p>&gt; 0</p>
6800            </td>
6801
6802            <td class="entry_tags">
6803              <ul class="entry_tags">
6804                  <li><a href="#tag_V1">V1</a></li>
6805              </ul>
6806            </td>
6807
6808          </tr>
6809          <tr class="entries_header">
6810            <th class="th_details" colspan="5">Details</th>
6811          </tr>
6812          <tr class="entry_cont">
6813            <td class="entry_details" colspan="5">
6814              <p>Will not be supported on most devices.<wbr/></p>
6815            </td>
6816          </tr>
6817
6818
6819          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6820           <!-- end of entry -->
6821        
6822                
6823          <tr class="entry" id="controls_android.lens.focusDistance">
6824            <td class="entry_name" rowspan="3">
6825              android.<wbr/>lens.<wbr/>focus<wbr/>Distance
6826            </td>
6827            <td class="entry_type">
6828                <span class="entry_type_name">float</span>
6829
6830              <span class="entry_type_visibility"> [public]</span>
6831
6832
6833            </td> <!-- entry_type -->
6834
6835            <td class="entry_description">
6836              <p>Distance to plane of sharpest focus,<wbr/>
6837measured from frontmost surface of the lens</p>
6838            </td>
6839
6840            <td class="entry_units">
6841              diopters (1/<wbr/>m)
6842            </td>
6843
6844            <td class="entry_range">
6845              <p>&gt;= 0</p>
6846            </td>
6847
6848            <td class="entry_tags">
6849              <ul class="entry_tags">
6850                  <li><a href="#tag_BC">BC</a></li>
6851                  <li><a href="#tag_V1">V1</a></li>
6852              </ul>
6853            </td>
6854
6855          </tr>
6856          <tr class="entries_header">
6857            <th class="th_details" colspan="5">Details</th>
6858          </tr>
6859          <tr class="entry_cont">
6860            <td class="entry_details" colspan="5">
6861              <p>0 = infinity focus.<wbr/> Used value should be clamped
6862to (0,<wbr/>minimum focus distance)</p>
6863            </td>
6864          </tr>
6865
6866
6867          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6868           <!-- end of entry -->
6869        
6870                
6871          <tr class="entry" id="controls_android.lens.opticalStabilizationMode">
6872            <td class="entry_name" rowspan="3">
6873              android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
6874            </td>
6875            <td class="entry_type">
6876                <span class="entry_type_name entry_type_name_enum">byte</span>
6877
6878              <span class="entry_type_visibility"> [public]</span>
6879
6880                <ul class="entry_type_enum">
6881                  <li>
6882                    <span class="entry_type_enum_name">OFF</span>
6883                  </li>
6884                  <li>
6885                    <span class="entry_type_enum_name">ON</span>
6886                    <span class="entry_type_enum_optional">optional</span>
6887                  </li>
6888                </ul>
6889
6890            </td> <!-- entry_type -->
6891
6892            <td class="entry_description">
6893              <p>Whether optical image stabilization is
6894enabled.<wbr/></p>
6895            </td>
6896
6897            <td class="entry_units">
6898            </td>
6899
6900            <td class="entry_range">
6901              <p>android.<wbr/>lens.<wbr/>available<wbr/>Optical<wbr/>Stabilization</p>
6902            </td>
6903
6904            <td class="entry_tags">
6905              <ul class="entry_tags">
6906                  <li><a href="#tag_V1">V1</a></li>
6907              </ul>
6908            </td>
6909
6910          </tr>
6911          <tr class="entries_header">
6912            <th class="th_details" colspan="5">Details</th>
6913          </tr>
6914          <tr class="entry_cont">
6915            <td class="entry_details" colspan="5">
6916              <p>Will not be supported on most devices.<wbr/></p>
6917            </td>
6918          </tr>
6919
6920
6921          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6922           <!-- end of entry -->
6923        
6924        
6925
6926      <!-- end of kind -->
6927      </tbody>
6928      <tr><td colspan="6" class="kind">static</td></tr>
6929
6930      <thead class="entries_header">
6931        <tr>
6932          <th class="th_name">Property Name</th>
6933          <th class="th_type">Type</th>
6934          <th class="th_description">Description</th>
6935          <th class="th_units">Units</th>
6936          <th class="th_range">Range</th>
6937          <th class="th_tags">Tags</th>
6938        </tr>
6939      </thead>
6940
6941      <tbody>
6942
6943        
6944
6945        
6946
6947        
6948
6949        
6950                
6951            
6952
6953                
6954          <tr class="entry" id="static_android.lens.info.availableApertures">
6955            <td class="entry_name" rowspan="3">
6956              android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures
6957            </td>
6958            <td class="entry_type">
6959                <span class="entry_type_name">float</span>
6960                <span class="entry_type_container">x</span>
6961
6962                <span class="entry_type_array">
6963                  n
6964                </span>
6965              <span class="entry_type_visibility"> [public]</span>
6966
6967
6968            </td> <!-- entry_type -->
6969
6970            <td class="entry_description">
6971              <p>List of supported aperture
6972values.<wbr/></p>
6973            </td>
6974
6975            <td class="entry_units">
6976            </td>
6977
6978            <td class="entry_range">
6979              <p>one entry required,<wbr/> &amp;&gt; 0</p>
6980            </td>
6981
6982            <td class="entry_tags">
6983              <ul class="entry_tags">
6984                  <li><a href="#tag_V1">V1</a></li>
6985              </ul>
6986            </td>
6987
6988          </tr>
6989          <tr class="entries_header">
6990            <th class="th_details" colspan="5">Details</th>
6991          </tr>
6992          <tr class="entry_cont">
6993            <td class="entry_details" colspan="5">
6994              <p>If the camera device doesn't support variable apertures,<wbr/>
6995listed value will be the fixed aperture.<wbr/></p>
6996<p>If the camera device supports variable apertures,<wbr/> the aperture value
6997in this list will be sorted in ascending order.<wbr/></p>
6998            </td>
6999          </tr>
7000
7001
7002          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7003           <!-- end of entry -->
7004        
7005                
7006          <tr class="entry" id="static_android.lens.info.availableFilterDensities">
7007            <td class="entry_name" rowspan="3">
7008              android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities
7009            </td>
7010            <td class="entry_type">
7011                <span class="entry_type_name">float</span>
7012                <span class="entry_type_container">x</span>
7013
7014                <span class="entry_type_array">
7015                  n
7016                </span>
7017              <span class="entry_type_visibility"> [public]</span>
7018
7019
7020            </td> <!-- entry_type -->
7021
7022            <td class="entry_description">
7023              <p>List of supported neutral density filter values for
7024<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a>.<wbr/></p>
7025            </td>
7026
7027            <td class="entry_units">
7028            </td>
7029
7030            <td class="entry_range">
7031              <p>At least one value is required.<wbr/> Values must be &gt;= 0.<wbr/></p>
7032            </td>
7033
7034            <td class="entry_tags">
7035              <ul class="entry_tags">
7036                  <li><a href="#tag_V1">V1</a></li>
7037              </ul>
7038            </td>
7039
7040          </tr>
7041          <tr class="entries_header">
7042            <th class="th_details" colspan="5">Details</th>
7043          </tr>
7044          <tr class="entry_cont">
7045            <td class="entry_details" colspan="5">
7046              <p>If changing <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> is not supported,<wbr/>
7047availableFilterDensities must contain only 0.<wbr/> Otherwise,<wbr/> this
7048list contains only the exact filter density values available on
7049this camera device.<wbr/></p>
7050            </td>
7051          </tr>
7052
7053
7054          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7055           <!-- end of entry -->
7056        
7057                
7058          <tr class="entry" id="static_android.lens.info.availableFocalLengths">
7059            <td class="entry_name" rowspan="3">
7060              android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths
7061            </td>
7062            <td class="entry_type">
7063                <span class="entry_type_name">float</span>
7064                <span class="entry_type_container">x</span>
7065
7066                <span class="entry_type_array">
7067                  n
7068                </span>
7069              <span class="entry_type_visibility"> [public]</span>
7070                <div class="entry_type_notes">the list of available focal lengths</div>
7071
7072
7073            </td> <!-- entry_type -->
7074
7075            <td class="entry_description">
7076              <p>If fitted with optical zoom,<wbr/> what focal
7077lengths are available.<wbr/> If not,<wbr/> the static focal
7078length</p>
7079            </td>
7080
7081            <td class="entry_units">
7082            </td>
7083
7084            <td class="entry_range">
7085              <p>&gt; 0</p>
7086            </td>
7087
7088            <td class="entry_tags">
7089              <ul class="entry_tags">
7090                  <li><a href="#tag_BC">BC</a></li>
7091                  <li><a href="#tag_V1">V1</a></li>
7092              </ul>
7093            </td>
7094
7095          </tr>
7096          <tr class="entries_header">
7097            <th class="th_details" colspan="5">Details</th>
7098          </tr>
7099          <tr class="entry_cont">
7100            <td class="entry_details" colspan="5">
7101              <p>If optical zoom not supported,<wbr/> only one value
7102should be reported</p>
7103            </td>
7104          </tr>
7105
7106
7107          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7108           <!-- end of entry -->
7109        
7110                
7111          <tr class="entry" id="static_android.lens.info.availableOpticalStabilization">
7112            <td class="entry_name" rowspan="1">
7113              android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization
7114            </td>
7115            <td class="entry_type">
7116                <span class="entry_type_name">byte</span>
7117                <span class="entry_type_container">x</span>
7118
7119                <span class="entry_type_array">
7120                  n
7121                </span>
7122              <span class="entry_type_visibility"> [public]</span>
7123                <div class="entry_type_notes">list of enums</div>
7124
7125
7126            </td> <!-- entry_type -->
7127
7128            <td class="entry_description">
7129              <p>List of supported optical image
7130stabilization modes</p>
7131            </td>
7132
7133            <td class="entry_units">
7134            </td>
7135
7136            <td class="entry_range">
7137            </td>
7138
7139            <td class="entry_tags">
7140              <ul class="entry_tags">
7141                  <li><a href="#tag_V1">V1</a></li>
7142              </ul>
7143            </td>
7144
7145          </tr>
7146
7147
7148          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7149           <!-- end of entry -->
7150        
7151                
7152          <tr class="entry" id="static_android.lens.info.geometricCorrectionMap">
7153            <td class="entry_name" rowspan="3">
7154              android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map
7155            </td>
7156            <td class="entry_type">
7157                <span class="entry_type_name">float</span>
7158                <span class="entry_type_container">x</span>
7159
7160                <span class="entry_type_array">
7161                  2 x 3 x n x m
7162                </span>
7163              <span class="entry_type_visibility"> [system]</span>
7164                <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>
7165
7166
7167            </td> <!-- entry_type -->
7168
7169            <td class="entry_description">
7170              <p>A low-resolution map for correction of
7171geometric distortions and chromatic aberrations,<wbr/> per
7172color channel</p>
7173            </td>
7174
7175            <td class="entry_units">
7176            </td>
7177
7178            <td class="entry_range">
7179              <p>N,<wbr/> M &gt;= 2</p>
7180            </td>
7181
7182            <td class="entry_tags">
7183              <ul class="entry_tags">
7184                  <li><a href="#tag_DNG">DNG</a></li>
7185              </ul>
7186            </td>
7187
7188          </tr>
7189          <tr class="entries_header">
7190            <th class="th_details" colspan="5">Details</th>
7191          </tr>
7192          <tr class="entry_cont">
7193            <td class="entry_details" colspan="5">
7194              <p>[DNG wants a function instead].<wbr/> What's easiest
7195for implementers? With an array size (M,<wbr/> N),<wbr/> entry (i,<wbr/>
7196j) provides the destination for pixel (i/<wbr/>(M-1) * width,<wbr/>
7197j/<wbr/>(N-1) * height).<wbr/> Data is row-major,<wbr/> with each array
7198entry being ( (X,<wbr/> Y)_<wbr/>r,<wbr/> (X,<wbr/> Y)_<wbr/>g,<wbr/> (X,<wbr/> Y)_<wbr/>b ) )</p>
7199            </td>
7200          </tr>
7201
7202
7203          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7204           <!-- end of entry -->
7205        
7206                
7207          <tr class="entry" id="static_android.lens.info.geometricCorrectionMapSize">
7208            <td class="entry_name" rowspan="1">
7209              android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map<wbr/>Size
7210            </td>
7211            <td class="entry_type">
7212                <span class="entry_type_name">int32</span>
7213                <span class="entry_type_container">x</span>
7214
7215                <span class="entry_type_array">
7216                  2
7217                </span>
7218              <span class="entry_type_visibility"> [system as size]</span>
7219                <div class="entry_type_notes">width and height of geometric correction map</div>
7220
7221
7222            </td> <!-- entry_type -->
7223
7224            <td class="entry_description">
7225              <p>Dimensions of geometric correction
7226map</p>
7227            </td>
7228
7229            <td class="entry_units">
7230            </td>
7231
7232            <td class="entry_range">
7233              <p>Both values &gt;= 2</p>
7234            </td>
7235
7236            <td class="entry_tags">
7237              <ul class="entry_tags">
7238                  <li><a href="#tag_V1">V1</a></li>
7239              </ul>
7240            </td>
7241
7242          </tr>
7243
7244
7245          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7246           <!-- end of entry -->
7247        
7248                
7249          <tr class="entry" id="static_android.lens.info.hyperfocalDistance">
7250            <td class="entry_name" rowspan="3">
7251              android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance
7252            </td>
7253            <td class="entry_type">
7254                <span class="entry_type_name">float</span>
7255
7256              <span class="entry_type_visibility"> [public]</span>
7257
7258
7259            </td> <!-- entry_type -->
7260
7261            <td class="entry_description">
7262              <p>Hyperfocal distance for this lens; set to
72630 if fixed focus</p>
7264            </td>
7265
7266            <td class="entry_units">
7267              diopters
7268            </td>
7269
7270            <td class="entry_range">
7271              <p>&gt;= 0</p>
7272            </td>
7273
7274            <td class="entry_tags">
7275              <ul class="entry_tags">
7276                  <li><a href="#tag_BC">BC</a></li>
7277              </ul>
7278            </td>
7279
7280          </tr>
7281          <tr class="entries_header">
7282            <th class="th_details" colspan="5">Details</th>
7283          </tr>
7284          <tr class="entry_cont">
7285            <td class="entry_details" colspan="5">
7286              <p>The hyperfocal distance is used for the old
7287API's 'fixed' setting</p>
7288            </td>
7289          </tr>
7290
7291
7292          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7293           <!-- end of entry -->
7294        
7295                
7296          <tr class="entry" id="static_android.lens.info.minimumFocusDistance">
7297            <td class="entry_name" rowspan="3">
7298              android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance
7299            </td>
7300            <td class="entry_type">
7301                <span class="entry_type_name">float</span>
7302
7303              <span class="entry_type_visibility"> [public]</span>
7304
7305
7306            </td> <!-- entry_type -->
7307
7308            <td class="entry_description">
7309              <p>Shortest distance from frontmost surface
7310of the lens that can be focused correctly</p>
7311            </td>
7312
7313            <td class="entry_units">
7314              diopters
7315            </td>
7316
7317            <td class="entry_range">
7318              <p>&gt;= 0</p>
7319            </td>
7320
7321            <td class="entry_tags">
7322              <ul class="entry_tags">
7323                  <li><a href="#tag_V1">V1</a></li>
7324              </ul>
7325            </td>
7326
7327          </tr>
7328          <tr class="entries_header">
7329            <th class="th_details" colspan="5">Details</th>
7330          </tr>
7331          <tr class="entry_cont">
7332            <td class="entry_details" colspan="5">
7333              <p>If the lens is fixed-focus,<wbr/> this should be
73340</p>
7335            </td>
7336          </tr>
7337
7338
7339          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7340           <!-- end of entry -->
7341        
7342                
7343          <tr class="entry" id="static_android.lens.info.shadingMapSize">
7344            <td class="entry_name" rowspan="3">
7345              android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size
7346            </td>
7347            <td class="entry_type">
7348                <span class="entry_type_name">int32</span>
7349                <span class="entry_type_container">x</span>
7350
7351                <span class="entry_type_array">
7352                  2
7353                </span>
7354              <span class="entry_type_visibility"> [public as size]</span>
7355                <div class="entry_type_notes">width and height of lens shading map provided by the HAL.<wbr/> (N x M)</div>
7356
7357
7358            </td> <!-- entry_type -->
7359
7360            <td class="entry_description">
7361              <p>Dimensions of lens shading map.<wbr/></p>
7362            </td>
7363
7364            <td class="entry_units">
7365            </td>
7366
7367            <td class="entry_range">
7368              <p>Both values &gt;= 1</p>
7369            </td>
7370
7371            <td class="entry_tags">
7372              <ul class="entry_tags">
7373                  <li><a href="#tag_V1">V1</a></li>
7374              </ul>
7375            </td>
7376
7377          </tr>
7378          <tr class="entries_header">
7379            <th class="th_details" colspan="5">Details</th>
7380          </tr>
7381          <tr class="entry_cont">
7382            <td class="entry_details" colspan="5">
7383              <p>The map should be on the order of 30-40 rows and columns,<wbr/> and
7384must be smaller than 64x64.<wbr/></p>
7385            </td>
7386          </tr>
7387
7388
7389          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7390           <!-- end of entry -->
7391        
7392        
7393        
7394
7395                
7396          <tr class="entry" id="static_android.lens.facing">
7397            <td class="entry_name" rowspan="1">
7398              android.<wbr/>lens.<wbr/>facing
7399            </td>
7400            <td class="entry_type">
7401                <span class="entry_type_name entry_type_name_enum">byte</span>
7402
7403              <span class="entry_type_visibility"> [public]</span>
7404
7405                <ul class="entry_type_enum">
7406                  <li>
7407                    <span class="entry_type_enum_name">FRONT</span>
7408                  </li>
7409                  <li>
7410                    <span class="entry_type_enum_name">BACK</span>
7411                  </li>
7412                </ul>
7413
7414            </td> <!-- entry_type -->
7415
7416            <td class="entry_description">
7417              <p>Direction the camera faces relative to
7418device screen</p>
7419            </td>
7420
7421            <td class="entry_units">
7422            </td>
7423
7424            <td class="entry_range">
7425            </td>
7426
7427            <td class="entry_tags">
7428            </td>
7429
7430          </tr>
7431
7432
7433          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7434           <!-- end of entry -->
7435        
7436                
7437          <tr class="entry" id="static_android.lens.opticalAxisAngle">
7438            <td class="entry_name" rowspan="3">
7439              android.<wbr/>lens.<wbr/>optical<wbr/>Axis<wbr/>Angle
7440            </td>
7441            <td class="entry_type">
7442                <span class="entry_type_name">float</span>
7443                <span class="entry_type_container">x</span>
7444
7445                <span class="entry_type_array">
7446                  2
7447                </span>
7448              <span class="entry_type_visibility"> [system]</span>
7449                <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>
7450
7451
7452            </td> <!-- entry_type -->
7453
7454            <td class="entry_description">
7455              <p>Relative angle of camera optical axis to the
7456perpendicular axis from the display</p>
7457            </td>
7458
7459            <td class="entry_units">
7460            </td>
7461
7462            <td class="entry_range">
7463              <p>[0-90) for first angle,<wbr/> [0-360) for second</p>
7464            </td>
7465
7466            <td class="entry_tags">
7467              <ul class="entry_tags">
7468                  <li><a href="#tag_ADV">ADV</a></li>
7469              </ul>
7470            </td>
7471
7472          </tr>
7473          <tr class="entries_header">
7474            <th class="th_details" colspan="5">Details</th>
7475          </tr>
7476          <tr class="entry_cont">
7477            <td class="entry_details" colspan="5">
7478              <p>Examples:</p>
7479<p>(0,<wbr/>0) means that the camera optical axis
7480is perpendicular to the display surface;</p>
7481<p>(45,<wbr/>0) means that the camera points 45 degrees up when
7482device is held upright;</p>
7483<p>(45,<wbr/>90) means the camera points 45 degrees to the right when
7484the device is held upright.<wbr/></p>
7485<p>Use FACING field to determine perpendicular outgoing
7486direction</p>
7487            </td>
7488          </tr>
7489
7490
7491          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7492           <!-- end of entry -->
7493        
7494                
7495          <tr class="entry" id="static_android.lens.position">
7496            <td class="entry_name" rowspan="1">
7497              android.<wbr/>lens.<wbr/>position
7498            </td>
7499            <td class="entry_type">
7500                <span class="entry_type_name">float</span>
7501                <span class="entry_type_container">x</span>
7502
7503                <span class="entry_type_array">
7504                  3, location in mm, in the sensor coordinate
7505            system
7506                </span>
7507              <span class="entry_type_visibility"> [system]</span>
7508
7509
7510            </td> <!-- entry_type -->
7511
7512            <td class="entry_description">
7513              <p>Coordinates of camera optical axis on
7514device</p>
7515            </td>
7516
7517            <td class="entry_units">
7518            </td>
7519
7520            <td class="entry_range">
7521            </td>
7522
7523            <td class="entry_tags">
7524              <ul class="entry_tags">
7525                  <li><a href="#tag_V1">V1</a></li>
7526              </ul>
7527            </td>
7528
7529          </tr>
7530
7531
7532          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7533           <!-- end of entry -->
7534        
7535        
7536
7537      <!-- end of kind -->
7538      </tbody>
7539      <tr><td colspan="6" class="kind">dynamic</td></tr>
7540
7541      <thead class="entries_header">
7542        <tr>
7543          <th class="th_name">Property Name</th>
7544          <th class="th_type">Type</th>
7545          <th class="th_description">Description</th>
7546          <th class="th_units">Units</th>
7547          <th class="th_range">Range</th>
7548          <th class="th_tags">Tags</th>
7549        </tr>
7550      </thead>
7551
7552      <tbody>
7553
7554        
7555
7556        
7557
7558        
7559
7560        
7561
7562                
7563          <tr class="entry" id="dynamic_android.lens.aperture">
7564            <td class="entry_name" rowspan="3">
7565              android.<wbr/>lens.<wbr/>aperture
7566            </td>
7567            <td class="entry_type">
7568                <span class="entry_type_name">float</span>
7569
7570              <span class="entry_type_visibility"> [public]</span>
7571
7572
7573            </td> <!-- entry_type -->
7574
7575            <td class="entry_description">
7576              <p>The ratio of lens focal length to the effective
7577aperture diameter.<wbr/></p>
7578            </td>
7579
7580            <td class="entry_units">
7581              f-number (f/<wbr/>NNN)
7582            </td>
7583
7584            <td class="entry_range">
7585              <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p>
7586            </td>
7587
7588            <td class="entry_tags">
7589              <ul class="entry_tags">
7590                  <li><a href="#tag_V1">V1</a></li>
7591              </ul>
7592            </td>
7593
7594          </tr>
7595          <tr class="entries_header">
7596            <th class="th_details" colspan="5">Details</th>
7597          </tr>
7598          <tr class="entry_cont">
7599            <td class="entry_details" colspan="5">
7600              <p>This will only be supported on the camera devices that
7601have variable aperture lens.<wbr/> The aperture value can only be
7602one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
7603<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
7604this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
7605<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
7606to achieve manual exposure control.<wbr/></p>
7607<p>The requested aperture value may take several frames to reach the
7608requested value; the camera device will report the current (intermediate)
7609aperture size in capture result metadata while the aperture is changing.<wbr/></p>
7610<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
7611the ON modes,<wbr/> this will be overridden by the camera device
7612auto-exposure algorithm,<wbr/> the overridden values are then provided
7613back to the user in the corresponding result.<wbr/></p>
7614            </td>
7615          </tr>
7616
7617
7618          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7619           <!-- end of entry -->
7620        
7621                
7622          <tr class="entry" id="dynamic_android.lens.filterDensity">
7623            <td class="entry_name" rowspan="3">
7624              android.<wbr/>lens.<wbr/>filter<wbr/>Density
7625            </td>
7626            <td class="entry_type">
7627                <span class="entry_type_name">float</span>
7628
7629              <span class="entry_type_visibility"> [public]</span>
7630
7631
7632            </td> <!-- entry_type -->
7633
7634            <td class="entry_description">
7635              <p>State of lens neutral density filter(s).<wbr/></p>
7636            </td>
7637
7638            <td class="entry_units">
7639              Steps of Exposure Value (EV).<wbr/>
7640            </td>
7641
7642            <td class="entry_range">
7643              <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p>
7644            </td>
7645
7646            <td class="entry_tags">
7647              <ul class="entry_tags">
7648                  <li><a href="#tag_V1">V1</a></li>
7649              </ul>
7650            </td>
7651
7652          </tr>
7653          <tr class="entries_header">
7654            <th class="th_details" colspan="5">Details</th>
7655          </tr>
7656          <tr class="entry_cont">
7657            <td class="entry_details" colspan="5">
7658              <p>This will not be supported on most camera devices.<wbr/> On devices
7659where this is supported,<wbr/> this may only be set to one of the
7660values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
7661<p>Lens filters are typically used to lower the amount of light the
7662sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
7663step is the standard logarithmic representation,<wbr/> which are
7664non-negative,<wbr/> and inversely proportional to the amount of light
7665hitting the sensor.<wbr/>  For example,<wbr/> setting this to 0 would result
7666in no reduction of the incoming light,<wbr/> and setting this to 2 would
7667mean that the filter is set to reduce incoming light by two stops
7668(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
7669            </td>
7670          </tr>
7671
7672
7673          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7674           <!-- end of entry -->
7675        
7676                
7677          <tr class="entry" id="dynamic_android.lens.focalLength">
7678            <td class="entry_name" rowspan="3">
7679              android.<wbr/>lens.<wbr/>focal<wbr/>Length
7680            </td>
7681            <td class="entry_type">
7682                <span class="entry_type_name">float</span>
7683
7684              <span class="entry_type_visibility"> [public]</span>
7685
7686
7687            </td> <!-- entry_type -->
7688
7689            <td class="entry_description">
7690              <p>Lens optical zoom setting</p>
7691            </td>
7692
7693            <td class="entry_units">
7694              focal length in mm
7695            </td>
7696
7697            <td class="entry_range">
7698              <p>&gt; 0</p>
7699            </td>
7700
7701            <td class="entry_tags">
7702              <ul class="entry_tags">
7703                  <li><a href="#tag_BC">BC</a></li>
7704              </ul>
7705            </td>
7706
7707          </tr>
7708          <tr class="entries_header">
7709            <th class="th_details" colspan="5">Details</th>
7710          </tr>
7711          <tr class="entry_cont">
7712            <td class="entry_details" colspan="5">
7713              <p>Will not be supported on most devices.<wbr/></p>
7714            </td>
7715          </tr>
7716
7717
7718          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7719           <!-- end of entry -->
7720        
7721                
7722          <tr class="entry" id="dynamic_android.lens.focusDistance">
7723            <td class="entry_name" rowspan="3">
7724              android.<wbr/>lens.<wbr/>focus<wbr/>Distance
7725            </td>
7726            <td class="entry_type">
7727                <span class="entry_type_name">float</span>
7728
7729              <span class="entry_type_visibility"> [public]</span>
7730
7731
7732            </td> <!-- entry_type -->
7733
7734            <td class="entry_description">
7735              <p>Distance to plane of sharpest focus,<wbr/>
7736measured from frontmost surface of the lens</p>
7737            </td>
7738
7739            <td class="entry_units">
7740              diopters (1/<wbr/>m)
7741            </td>
7742
7743            <td class="entry_range">
7744              <p>&gt;= 0</p>
7745            </td>
7746
7747            <td class="entry_tags">
7748              <ul class="entry_tags">
7749                  <li><a href="#tag_BC">BC</a></li>
7750              </ul>
7751            </td>
7752
7753          </tr>
7754          <tr class="entries_header">
7755            <th class="th_details" colspan="5">Details</th>
7756          </tr>
7757          <tr class="entry_cont">
7758            <td class="entry_details" colspan="5">
7759              <p>Should be zero for fixed-focus cameras</p>
7760            </td>
7761          </tr>
7762
7763
7764          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7765           <!-- end of entry -->
7766        
7767                
7768          <tr class="entry" id="dynamic_android.lens.focusRange">
7769            <td class="entry_name" rowspan="3">
7770              android.<wbr/>lens.<wbr/>focus<wbr/>Range
7771            </td>
7772            <td class="entry_type">
7773                <span class="entry_type_name">float</span>
7774                <span class="entry_type_container">x</span>
7775
7776                <span class="entry_type_array">
7777                  2
7778                </span>
7779              <span class="entry_type_visibility"> [public]</span>
7780                <div class="entry_type_notes">Range of scene distances that are in focus</div>
7781
7782
7783            </td> <!-- entry_type -->
7784
7785            <td class="entry_description">
7786              <p>The range of scene distances that are in
7787sharp focus (depth of field)</p>
7788            </td>
7789
7790            <td class="entry_units">
7791              pair of focus distances in diopters: (near,<wbr/>
7792          far)
7793            </td>
7794
7795            <td class="entry_range">
7796              <p>&gt;=0</p>
7797            </td>
7798
7799            <td class="entry_tags">
7800              <ul class="entry_tags">
7801                  <li><a href="#tag_BC">BC</a></li>
7802              </ul>
7803            </td>
7804
7805          </tr>
7806          <tr class="entries_header">
7807            <th class="th_details" colspan="5">Details</th>
7808          </tr>
7809          <tr class="entry_cont">
7810            <td class="entry_details" colspan="5">
7811              <p>If variable focus not supported,<wbr/> can still report
7812fixed depth of field range</p>
7813            </td>
7814          </tr>
7815
7816
7817          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7818           <!-- end of entry -->
7819        
7820                
7821          <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode">
7822            <td class="entry_name" rowspan="3">
7823              android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
7824            </td>
7825            <td class="entry_type">
7826                <span class="entry_type_name entry_type_name_enum">byte</span>
7827
7828              <span class="entry_type_visibility"> [public]</span>
7829
7830                <ul class="entry_type_enum">
7831                  <li>
7832                    <span class="entry_type_enum_name">OFF</span>
7833                  </li>
7834                  <li>
7835                    <span class="entry_type_enum_name">ON</span>
7836                    <span class="entry_type_enum_optional">optional</span>
7837                  </li>
7838                </ul>
7839
7840            </td> <!-- entry_type -->
7841
7842            <td class="entry_description">
7843              <p>Whether optical image stabilization is
7844enabled.<wbr/></p>
7845            </td>
7846
7847            <td class="entry_units">
7848            </td>
7849
7850            <td class="entry_range">
7851              <p>android.<wbr/>lens.<wbr/>available<wbr/>Optical<wbr/>Stabilization</p>
7852            </td>
7853
7854            <td class="entry_tags">
7855              <ul class="entry_tags">
7856                  <li><a href="#tag_V1">V1</a></li>
7857              </ul>
7858            </td>
7859
7860          </tr>
7861          <tr class="entries_header">
7862            <th class="th_details" colspan="5">Details</th>
7863          </tr>
7864          <tr class="entry_cont">
7865            <td class="entry_details" colspan="5">
7866              <p>Will not be supported on most devices.<wbr/></p>
7867            </td>
7868          </tr>
7869
7870
7871          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7872           <!-- end of entry -->
7873        
7874                
7875          <tr class="entry" id="dynamic_android.lens.state">
7876            <td class="entry_name" rowspan="1">
7877              android.<wbr/>lens.<wbr/>state
7878            </td>
7879            <td class="entry_type">
7880                <span class="entry_type_name entry_type_name_enum">byte</span>
7881
7882              <span class="entry_type_visibility"> [public]</span>
7883
7884                <ul class="entry_type_enum">
7885                  <li>
7886                    <span class="entry_type_enum_name">STATIONARY</span>
7887                  </li>
7888                  <li>
7889                    <span class="entry_type_enum_name">MOVING</span>
7890                  </li>
7891                </ul>
7892
7893            </td> <!-- entry_type -->
7894
7895            <td class="entry_description">
7896              <p>Current lens status</p>
7897            </td>
7898
7899            <td class="entry_units">
7900            </td>
7901
7902            <td class="entry_range">
7903            </td>
7904
7905            <td class="entry_tags">
7906              <ul class="entry_tags">
7907                  <li><a href="#tag_V1">V1</a></li>
7908              </ul>
7909            </td>
7910
7911          </tr>
7912
7913
7914          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7915           <!-- end of entry -->
7916        
7917        
7918
7919      <!-- end of kind -->
7920      </tbody>
7921
7922  <!-- end of section -->
7923  <tr><td colspan="6" id="section_noiseReduction" class="section">noiseReduction</td></tr>
7924
7925
7926      <tr><td colspan="6" class="kind">controls</td></tr>
7927
7928      <thead class="entries_header">
7929        <tr>
7930          <th class="th_name">Property Name</th>
7931          <th class="th_type">Type</th>
7932          <th class="th_description">Description</th>
7933          <th class="th_units">Units</th>
7934          <th class="th_range">Range</th>
7935          <th class="th_tags">Tags</th>
7936        </tr>
7937      </thead>
7938
7939      <tbody>
7940
7941        
7942
7943        
7944
7945        
7946
7947        
7948
7949                
7950          <tr class="entry" id="controls_android.noiseReduction.mode">
7951            <td class="entry_name" rowspan="3">
7952              android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
7953            </td>
7954            <td class="entry_type">
7955                <span class="entry_type_name entry_type_name_enum">byte</span>
7956
7957              <span class="entry_type_visibility"> [public]</span>
7958
7959                <ul class="entry_type_enum">
7960                  <li>
7961                    <span class="entry_type_enum_name">OFF</span>
7962                    <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
7963                  </li>
7964                  <li>
7965                    <span class="entry_type_enum_name">FAST</span>
7966                    <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
7967output</p></span>
7968                  </li>
7969                  <li>
7970                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
7971                    <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
7972quality</p></span>
7973                  </li>
7974                </ul>
7975
7976            </td> <!-- entry_type -->
7977
7978            <td class="entry_description">
7979              <p>Mode of operation for the noise reduction
7980algorithm</p>
7981            </td>
7982
7983            <td class="entry_units">
7984            </td>
7985
7986            <td class="entry_range">
7987              <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
7988            </td>
7989
7990            <td class="entry_tags">
7991              <ul class="entry_tags">
7992                  <li><a href="#tag_V1">V1</a></li>
7993              </ul>
7994            </td>
7995
7996          </tr>
7997          <tr class="entries_header">
7998            <th class="th_details" colspan="5">Details</th>
7999          </tr>
8000          <tr class="entry_cont">
8001            <td class="entry_details" colspan="5">
8002              <p>Noise filtering control.<wbr/> OFF means no noise reduction
8003will be applied by the HAL.<wbr/></p>
8004<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8005will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8006will use the highest-quality noise filtering algorithms,<wbr/>
8007even if it slows down capture rate.<wbr/> FAST means the camera device should not
8008slow down capture rate when applying noise filtering.<wbr/></p>
8009            </td>
8010          </tr>
8011
8012
8013          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8014           <!-- end of entry -->
8015        
8016                
8017          <tr class="entry" id="controls_android.noiseReduction.strength">
8018            <td class="entry_name" rowspan="1">
8019              android.<wbr/>noise<wbr/>Reduction.<wbr/>strength
8020            </td>
8021            <td class="entry_type">
8022                <span class="entry_type_name">byte</span>
8023
8024              <span class="entry_type_visibility"> [system]</span>
8025
8026
8027            </td> <!-- entry_type -->
8028
8029            <td class="entry_description">
8030              <p>Control the amount of noise reduction
8031applied to the images</p>
8032            </td>
8033
8034            <td class="entry_units">
8035              1-10; 10 is max noise reduction
8036            </td>
8037
8038            <td class="entry_range">
8039              <p>1 - 10</p>
8040            </td>
8041
8042            <td class="entry_tags">
8043            </td>
8044
8045          </tr>
8046
8047
8048          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8049           <!-- end of entry -->
8050        
8051        
8052
8053      <!-- end of kind -->
8054      </tbody>
8055      <tr><td colspan="6" class="kind">dynamic</td></tr>
8056
8057      <thead class="entries_header">
8058        <tr>
8059          <th class="th_name">Property Name</th>
8060          <th class="th_type">Type</th>
8061          <th class="th_description">Description</th>
8062          <th class="th_units">Units</th>
8063          <th class="th_range">Range</th>
8064          <th class="th_tags">Tags</th>
8065        </tr>
8066      </thead>
8067
8068      <tbody>
8069
8070        
8071
8072        
8073
8074        
8075
8076        
8077
8078                
8079          <tr class="entry" id="dynamic_android.noiseReduction.mode">
8080            <td class="entry_name" rowspan="3">
8081              android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
8082            </td>
8083            <td class="entry_type">
8084                <span class="entry_type_name entry_type_name_enum">byte</span>
8085
8086              <span class="entry_type_visibility"> [public]</span>
8087
8088                <ul class="entry_type_enum">
8089                  <li>
8090                    <span class="entry_type_enum_name">OFF</span>
8091                    <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
8092                  </li>
8093                  <li>
8094                    <span class="entry_type_enum_name">FAST</span>
8095                    <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8096output</p></span>
8097                  </li>
8098                  <li>
8099                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
8100                    <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8101quality</p></span>
8102                  </li>
8103                </ul>
8104
8105            </td> <!-- entry_type -->
8106
8107            <td class="entry_description">
8108              <p>Mode of operation for the noise reduction
8109algorithm</p>
8110            </td>
8111
8112            <td class="entry_units">
8113            </td>
8114
8115            <td class="entry_range">
8116              <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
8117            </td>
8118
8119            <td class="entry_tags">
8120              <ul class="entry_tags">
8121                  <li><a href="#tag_V1">V1</a></li>
8122              </ul>
8123            </td>
8124
8125          </tr>
8126          <tr class="entries_header">
8127            <th class="th_details" colspan="5">Details</th>
8128          </tr>
8129          <tr class="entry_cont">
8130            <td class="entry_details" colspan="5">
8131              <p>Noise filtering control.<wbr/> OFF means no noise reduction
8132will be applied by the HAL.<wbr/></p>
8133<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8134will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8135will use the highest-quality noise filtering algorithms,<wbr/>
8136even if it slows down capture rate.<wbr/> FAST means the camera device should not
8137slow down capture rate when applying noise filtering.<wbr/></p>
8138            </td>
8139          </tr>
8140
8141
8142          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8143           <!-- end of entry -->
8144        
8145        
8146
8147      <!-- end of kind -->
8148      </tbody>
8149
8150  <!-- end of section -->
8151  <tr><td colspan="6" id="section_quirks" class="section">quirks</td></tr>
8152
8153
8154      <tr><td colspan="6" class="kind">static</td></tr>
8155
8156      <thead class="entries_header">
8157        <tr>
8158          <th class="th_name">Property Name</th>
8159          <th class="th_type">Type</th>
8160          <th class="th_description">Description</th>
8161          <th class="th_units">Units</th>
8162          <th class="th_range">Range</th>
8163          <th class="th_tags">Tags</th>
8164        </tr>
8165      </thead>
8166
8167      <tbody>
8168
8169        
8170
8171        
8172
8173        
8174
8175        
8176
8177                
8178          <tr class="entry" id="static_android.quirks.meteringCropRegion">
8179            <td class="entry_name" rowspan="3">
8180              android.<wbr/>quirks.<wbr/>metering<wbr/>Crop<wbr/>Region
8181            </td>
8182            <td class="entry_type">
8183                <span class="entry_type_name">byte</span>
8184
8185              <span class="entry_type_visibility"> [system]</span>
8186
8187
8188            </td> <!-- entry_type -->
8189
8190            <td class="entry_description">
8191              <p>If set to 1,<wbr/> the camera service does not
8192scale 'normalized' coordinates with respect to the crop
8193region.<wbr/> This applies to metering input (a{e,<wbr/>f,<wbr/>wb}Region
8194and output (face rectangles).<wbr/></p>
8195            </td>
8196
8197            <td class="entry_units">
8198            </td>
8199
8200            <td class="entry_range">
8201            </td>
8202
8203            <td class="entry_tags">
8204            </td>
8205
8206          </tr>
8207          <tr class="entries_header">
8208            <th class="th_details" colspan="5">Details</th>
8209          </tr>
8210          <tr class="entry_cont">
8211            <td class="entry_details" colspan="5">
8212              <p>Normalized coordinates refer to those in the
8213(-1000,<wbr/>1000) range mentioned in the
8214android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
8215<p>HAL implementations should instead always use and emit
8216sensor array-relative coordinates for all region data.<wbr/> Does
8217not need to be listed in static metadata.<wbr/> Support will be
8218removed in future versions of camera service.<wbr/></p>
8219            </td>
8220          </tr>
8221
8222
8223          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8224           <!-- end of entry -->
8225        
8226                
8227          <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
8228            <td class="entry_name" rowspan="3">
8229              android.<wbr/>quirks.<wbr/>trigger<wbr/>Af<wbr/>With<wbr/>Auto
8230            </td>
8231            <td class="entry_type">
8232                <span class="entry_type_name">byte</span>
8233
8234              <span class="entry_type_visibility"> [system]</span>
8235
8236
8237            </td> <!-- entry_type -->
8238
8239            <td class="entry_description">
8240              <p>If set to 1,<wbr/> then the camera service always
8241switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF
8242trigger.<wbr/></p>
8243            </td>
8244
8245            <td class="entry_units">
8246            </td>
8247
8248            <td class="entry_range">
8249            </td>
8250
8251            <td class="entry_tags">
8252            </td>
8253
8254          </tr>
8255          <tr class="entries_header">
8256            <th class="th_details" colspan="5">Details</th>
8257          </tr>
8258          <tr class="entry_cont">
8259            <td class="entry_details" colspan="5">
8260              <p>HAL implementations should implement AF trigger
8261modes for AUTO,<wbr/> MACRO,<wbr/> CONTINUOUS_<wbr/>FOCUS,<wbr/> and
8262CONTINUOUS_<wbr/>PICTURE modes instead of using this flag.<wbr/> Does
8263not need to be listed in static metadata.<wbr/> Support will be
8264removed in future versions of camera service</p>
8265            </td>
8266          </tr>
8267
8268
8269          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8270           <!-- end of entry -->
8271        
8272                
8273          <tr class="entry" id="static_android.quirks.useZslFormat">
8274            <td class="entry_name" rowspan="3">
8275              android.<wbr/>quirks.<wbr/>use<wbr/>Zsl<wbr/>Format
8276            </td>
8277            <td class="entry_type">
8278                <span class="entry_type_name">byte</span>
8279
8280              <span class="entry_type_visibility"> [system]</span>
8281
8282
8283            </td> <!-- entry_type -->
8284
8285            <td class="entry_description">
8286              <p>If set to 1,<wbr/> the camera service uses
8287CAMERA2_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>ZSL instead of
8288HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED for the zero
8289shutter lag stream</p>
8290            </td>
8291
8292            <td class="entry_units">
8293            </td>
8294
8295            <td class="entry_range">
8296            </td>
8297
8298            <td class="entry_tags">
8299            </td>
8300
8301          </tr>
8302          <tr class="entries_header">
8303            <th class="th_details" colspan="5">Details</th>
8304          </tr>
8305          <tr class="entry_cont">
8306            <td class="entry_details" colspan="5">
8307              <p>HAL implementations should use gralloc usage flags
8308to determine that a stream will be used for
8309zero-shutter-lag,<wbr/> instead of relying on an explicit
8310format setting.<wbr/> Does not need to be listed in static
8311metadata.<wbr/> Support will be removed in future versions of
8312camera service.<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          <tr class="entry" id="static_android.quirks.usePartialResult">
8322            <td class="entry_name" rowspan="3">
8323              android.<wbr/>quirks.<wbr/>use<wbr/>Partial<wbr/>Result
8324            </td>
8325            <td class="entry_type">
8326                <span class="entry_type_name">byte</span>
8327
8328              <span class="entry_type_visibility"> [hidden]</span>
8329
8330
8331            </td> <!-- entry_type -->
8332
8333            <td class="entry_description">
8334              <p>If set to 1,<wbr/> the HAL will always split result
8335metadata for a single capture into multiple buffers,<wbr/>
8336returned using multiple process_<wbr/>capture_<wbr/>result calls.<wbr/></p>
8337            </td>
8338
8339            <td class="entry_units">
8340            </td>
8341
8342            <td class="entry_range">
8343            </td>
8344
8345            <td class="entry_tags">
8346            </td>
8347
8348          </tr>
8349          <tr class="entries_header">
8350            <th class="th_details" colspan="5">Details</th>
8351          </tr>
8352          <tr class="entry_cont">
8353            <td class="entry_details" colspan="5">
8354              <p>Does not need to be listed in static
8355metadata.<wbr/> Support for partial results will be reworked in
8356future versions of camera service.<wbr/> This quirk will stop
8357working at that point; DO NOT USE without careful
8358consideration of future support.<wbr/></p>
8359            </td>
8360          </tr>
8361
8362
8363          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8364           <!-- end of entry -->
8365        
8366        
8367
8368      <!-- end of kind -->
8369      </tbody>
8370      <tr><td colspan="6" class="kind">dynamic</td></tr>
8371
8372      <thead class="entries_header">
8373        <tr>
8374          <th class="th_name">Property Name</th>
8375          <th class="th_type">Type</th>
8376          <th class="th_description">Description</th>
8377          <th class="th_units">Units</th>
8378          <th class="th_range">Range</th>
8379          <th class="th_tags">Tags</th>
8380        </tr>
8381      </thead>
8382
8383      <tbody>
8384
8385        
8386
8387        
8388
8389        
8390
8391        
8392
8393                
8394          <tr class="entry" id="dynamic_android.quirks.partialResult">
8395            <td class="entry_name" rowspan="3">
8396              android.<wbr/>quirks.<wbr/>partial<wbr/>Result
8397            </td>
8398            <td class="entry_type">
8399                <span class="entry_type_name entry_type_name_enum">byte</span>
8400
8401              <span class="entry_type_visibility"> [hidden as boolean]</span>
8402
8403                <ul class="entry_type_enum">
8404                  <li>
8405                    <span class="entry_type_enum_name">FINAL</span>
8406                    <span class="entry_type_enum_notes"><p>The last or only metadata result buffer
8407for this capture.<wbr/></p></span>
8408                  </li>
8409                  <li>
8410                    <span class="entry_type_enum_name">PARTIAL</span>
8411                    <span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this
8412capture.<wbr/> More result buffers for this capture will be sent
8413by the HAL,<wbr/> the last of which will be marked
8414FINAL.<wbr/></p></span>
8415                  </li>
8416                </ul>
8417
8418            </td> <!-- entry_type -->
8419
8420            <td class="entry_description">
8421              <p>Whether a result given to the framework is the
8422final one for the capture,<wbr/> or only a partial that contains a
8423subset of the full set of dynamic metadata
8424values.<wbr/></p>
8425            </td>
8426
8427            <td class="entry_units">
8428            </td>
8429
8430            <td class="entry_range">
8431              <p>Optional.<wbr/> Default value is FINAL.<wbr/></p>
8432            </td>
8433
8434            <td class="entry_tags">
8435            </td>
8436
8437          </tr>
8438          <tr class="entries_header">
8439            <th class="th_details" colspan="5">Details</th>
8440          </tr>
8441          <tr class="entry_cont">
8442            <td class="entry_details" colspan="5">
8443              <p>The entries in the result metadata buffers for a
8444single capture may not overlap,<wbr/> except for this entry.<wbr/> The
8445FINAL buffers must retain FIFO ordering relative to the
8446requests that generate them,<wbr/> so the FINAL buffer for frame 3 must
8447always be sent to the framework after the FINAL buffer for frame 2,<wbr/> and
8448before the FINAL buffer for frame 4.<wbr/> PARTIAL buffers may be returned
8449in any order relative to other frames,<wbr/> but all PARTIAL buffers for a given
8450capture must arrive before the FINAL buffer for that capture.<wbr/> This entry may
8451only be used by the HAL if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p>
8452            </td>
8453          </tr>
8454
8455
8456          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8457           <!-- end of entry -->
8458        
8459        
8460
8461      <!-- end of kind -->
8462      </tbody>
8463
8464  <!-- end of section -->
8465  <tr><td colspan="6" id="section_request" class="section">request</td></tr>
8466
8467
8468      <tr><td colspan="6" class="kind">controls</td></tr>
8469
8470      <thead class="entries_header">
8471        <tr>
8472          <th class="th_name">Property Name</th>
8473          <th class="th_type">Type</th>
8474          <th class="th_description">Description</th>
8475          <th class="th_units">Units</th>
8476          <th class="th_range">Range</th>
8477          <th class="th_tags">Tags</th>
8478        </tr>
8479      </thead>
8480
8481      <tbody>
8482
8483        
8484
8485        
8486
8487        
8488
8489        
8490
8491                
8492          <tr class="entry" id="controls_android.request.frameCount">
8493            <td class="entry_name" rowspan="1">
8494              android.<wbr/>request.<wbr/>frame<wbr/>Count
8495            </td>
8496            <td class="entry_type">
8497                <span class="entry_type_name">int32</span>
8498
8499              <span class="entry_type_visibility"> [system]</span>
8500
8501
8502            </td> <!-- entry_type -->
8503
8504            <td class="entry_description">
8505              <p>A frame counter set by the framework.<wbr/> Must
8506be maintained unchanged in output frame.<wbr/> This value monotonically
8507increases with every new result (that is,<wbr/> each new result has a unique
8508frameCount value).<wbr/></p>
8509            </td>
8510
8511            <td class="entry_units">
8512              incrementing integer
8513            </td>
8514
8515            <td class="entry_range">
8516              <p>Any int</p>
8517            </td>
8518
8519            <td class="entry_tags">
8520            </td>
8521
8522          </tr>
8523
8524
8525          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8526           <!-- end of entry -->
8527        
8528                
8529          <tr class="entry" id="controls_android.request.id">
8530            <td class="entry_name" rowspan="1">
8531              android.<wbr/>request.<wbr/>id
8532            </td>
8533            <td class="entry_type">
8534                <span class="entry_type_name">int32</span>
8535
8536              <span class="entry_type_visibility"> [hidden]</span>
8537
8538
8539            </td> <!-- entry_type -->
8540
8541            <td class="entry_description">
8542              <p>An application-specified ID for the current
8543request.<wbr/> Must be maintained unchanged in output
8544frame</p>
8545            </td>
8546
8547            <td class="entry_units">
8548              arbitrary integer assigned by application
8549            </td>
8550
8551            <td class="entry_range">
8552              <p>Any int</p>
8553            </td>
8554
8555            <td class="entry_tags">
8556              <ul class="entry_tags">
8557                  <li><a href="#tag_V1">V1</a></li>
8558              </ul>
8559            </td>
8560
8561          </tr>
8562
8563
8564          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8565           <!-- end of entry -->
8566        
8567                
8568          <tr class="entry" id="controls_android.request.inputStreams">
8569            <td class="entry_name" rowspan="3">
8570              android.<wbr/>request.<wbr/>input<wbr/>Streams
8571            </td>
8572            <td class="entry_type">
8573                <span class="entry_type_name">int32</span>
8574                <span class="entry_type_container">x</span>
8575
8576                <span class="entry_type_array">
8577                  n
8578                </span>
8579              <span class="entry_type_visibility"> [system]</span>
8580
8581
8582            </td> <!-- entry_type -->
8583
8584            <td class="entry_description">
8585              <p>List which camera reprocess stream is used
8586for the source of reprocessing data.<wbr/></p>
8587            </td>
8588
8589            <td class="entry_units">
8590              List of camera reprocess stream IDs
8591            </td>
8592
8593            <td class="entry_range">
8594              <p>Typically,<wbr/> only one entry allowed,<wbr/> must be a valid
8595reprocess stream ID.<wbr/></p>
8596<p>If android.<wbr/>jpeg.<wbr/>needs<wbr/>Thumbnail is set,<wbr/> then multiple
8597reprocess streams may be included in a single request; they
8598must be different scaled versions of the same image.<wbr/></p>
8599            </td>
8600
8601            <td class="entry_tags">
8602              <ul class="entry_tags">
8603                  <li><a href="#tag_HAL2">HAL2</a></li>
8604              </ul>
8605            </td>
8606
8607          </tr>
8608          <tr class="entries_header">
8609            <th class="th_details" colspan="5">Details</th>
8610          </tr>
8611          <tr class="entry_cont">
8612            <td class="entry_details" colspan="5">
8613              <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> ==
8614REPROCESS.<wbr/> Ignored otherwise</p>
8615            </td>
8616          </tr>
8617
8618
8619          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8620           <!-- end of entry -->
8621        
8622                
8623          <tr class="entry" id="controls_android.request.metadataMode">
8624            <td class="entry_name" rowspan="1">
8625              android.<wbr/>request.<wbr/>metadata<wbr/>Mode
8626            </td>
8627            <td class="entry_type">
8628                <span class="entry_type_name entry_type_name_enum">byte</span>
8629
8630              <span class="entry_type_visibility"> [system]</span>
8631
8632                <ul class="entry_type_enum">
8633                  <li>
8634                    <span class="entry_type_enum_name">NONE</span>
8635                    <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
8636for application-bound buffer data.<wbr/> If no
8637application-bound streams exist,<wbr/> no frame should be
8638placed in the output frame queue.<wbr/> If such streams
8639exist,<wbr/> a frame should be placed on the output queue
8640with null metadata but with the necessary output buffer
8641information.<wbr/> Timestamp information should still be
8642included with any output stream buffers</p></span>
8643                  </li>
8644                  <li>
8645                    <span class="entry_type_enum_name">FULL</span>
8646                    <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
8647only be produced if they are separately
8648enabled</p></span>
8649                  </li>
8650                </ul>
8651
8652            </td> <!-- entry_type -->
8653
8654            <td class="entry_description">
8655              <p>How much metadata to produce on
8656output</p>
8657            </td>
8658
8659            <td class="entry_units">
8660            </td>
8661
8662            <td class="entry_range">
8663            </td>
8664
8665            <td class="entry_tags">
8666            </td>
8667
8668          </tr>
8669
8670
8671          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8672           <!-- end of entry -->
8673        
8674                
8675          <tr class="entry" id="controls_android.request.outputStreams">
8676            <td class="entry_name" rowspan="3">
8677              android.<wbr/>request.<wbr/>output<wbr/>Streams
8678            </td>
8679            <td class="entry_type">
8680                <span class="entry_type_name">int32</span>
8681                <span class="entry_type_container">x</span>
8682
8683                <span class="entry_type_array">
8684                  n
8685                </span>
8686              <span class="entry_type_visibility"> [system]</span>
8687
8688
8689            </td> <!-- entry_type -->
8690
8691            <td class="entry_description">
8692              <p>Lists which camera output streams image data
8693from this capture must be sent to</p>
8694            </td>
8695
8696            <td class="entry_units">
8697              List of camera stream IDs
8698            </td>
8699
8700            <td class="entry_range">
8701              <p>List must only include streams that have been
8702created</p>
8703            </td>
8704
8705            <td class="entry_tags">
8706              <ul class="entry_tags">
8707                  <li><a href="#tag_HAL2">HAL2</a></li>
8708              </ul>
8709            </td>
8710
8711          </tr>
8712          <tr class="entries_header">
8713            <th class="th_details" colspan="5">Details</th>
8714          </tr>
8715          <tr class="entry_cont">
8716            <td class="entry_details" colspan="5">
8717              <p>If no output streams are listed,<wbr/> then the image
8718data should simply be discarded.<wbr/> The image data must
8719still be captured for metadata and statistics production,<wbr/>
8720and the lens and flash must operate as requested.<wbr/></p>
8721            </td>
8722          </tr>
8723
8724
8725          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8726           <!-- end of entry -->
8727        
8728                
8729          <tr class="entry" id="controls_android.request.type">
8730            <td class="entry_name" rowspan="1">
8731              android.<wbr/>request.<wbr/>type
8732            </td>
8733            <td class="entry_type">
8734                <span class="entry_type_name entry_type_name_enum">byte</span>
8735
8736              <span class="entry_type_visibility"> [system]</span>
8737
8738                <ul class="entry_type_enum">
8739                  <li>
8740                    <span class="entry_type_enum_name">CAPTURE</span>
8741                    <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
8742and process it according to the
8743settings</p></span>
8744                  </li>
8745                  <li>
8746                    <span class="entry_type_enum_name">REPROCESS</span>
8747                    <span class="entry_type_enum_notes"><p>Process previously captured data; the
8748android.<wbr/>request.<wbr/>input<wbr/>Stream parameter determines the
8749source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
8750needed for reprocessing with [RP]</p></span>
8751                  </li>
8752                </ul>
8753
8754            </td> <!-- entry_type -->
8755
8756            <td class="entry_description">
8757              <p>The type of the request; either CAPTURE or
8758REPROCESS.<wbr/> For HAL3,<wbr/> this tag is redundant.<wbr/></p>
8759            </td>
8760
8761            <td class="entry_units">
8762            </td>
8763
8764            <td class="entry_range">
8765            </td>
8766
8767            <td class="entry_tags">
8768              <ul class="entry_tags">
8769                  <li><a href="#tag_HAL2">HAL2</a></li>
8770              </ul>
8771            </td>
8772
8773          </tr>
8774
8775
8776          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8777           <!-- end of entry -->
8778        
8779        
8780
8781      <!-- end of kind -->
8782      </tbody>
8783      <tr><td colspan="6" class="kind">static</td></tr>
8784
8785      <thead class="entries_header">
8786        <tr>
8787          <th class="th_name">Property Name</th>
8788          <th class="th_type">Type</th>
8789          <th class="th_description">Description</th>
8790          <th class="th_units">Units</th>
8791          <th class="th_range">Range</th>
8792          <th class="th_tags">Tags</th>
8793        </tr>
8794      </thead>
8795
8796      <tbody>
8797
8798        
8799
8800        
8801
8802        
8803
8804        
8805
8806                
8807          <tr class="entry" id="static_android.request.maxNumOutputStreams">
8808            <td class="entry_name" rowspan="3">
8809              android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams
8810            </td>
8811            <td class="entry_type">
8812                <span class="entry_type_name">int32</span>
8813                <span class="entry_type_container">x</span>
8814
8815                <span class="entry_type_array">
8816                  3
8817                </span>
8818              <span class="entry_type_visibility"> [public]</span>
8819
8820
8821            </td> <!-- entry_type -->
8822
8823            <td class="entry_description">
8824              <p>How many output streams can be allocated at
8825the same time for each type of stream</p>
8826            </td>
8827
8828            <td class="entry_units">
8829              The number of raw sensor streams; the number of
8830          processed,<wbr/> uncompressed streams; and the number of
8831          JPEG-compressed streams
8832            </td>
8833
8834            <td class="entry_range">
8835              <p>&gt;=1 for Raw and JPEG-compressed stream.<wbr/> &gt;= 3
8836for processed,<wbr/> uncompressed streams</p>
8837            </td>
8838
8839            <td class="entry_tags">
8840              <ul class="entry_tags">
8841                  <li><a href="#tag_BC">BC</a></li>
8842              </ul>
8843            </td>
8844
8845          </tr>
8846          <tr class="entries_header">
8847            <th class="th_details" colspan="5">Details</th>
8848          </tr>
8849          <tr class="entry_cont">
8850            <td class="entry_details" colspan="5">
8851              <p>Video snapshot with preview callbacks requires 3
8852processed streams (preview,<wbr/> record,<wbr/> app callbacks) and
8853one JPEG stream (snapshot)</p>
8854            </td>
8855          </tr>
8856
8857
8858          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8859           <!-- end of entry -->
8860        
8861                
8862          <tr class="entry" id="static_android.request.maxNumReprocessStreams">
8863            <td class="entry_name" rowspan="1">
8864              android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Reprocess<wbr/>Streams
8865            </td>
8866            <td class="entry_type">
8867                <span class="entry_type_name">int32</span>
8868                <span class="entry_type_container">x</span>
8869
8870                <span class="entry_type_array">
8871                  1
8872                </span>
8873              <span class="entry_type_visibility"> [system]</span>
8874
8875
8876            </td> <!-- entry_type -->
8877
8878            <td class="entry_description">
8879              <p>How many reprocessing streams of any type
8880can be allocated at the same time</p>
8881            </td>
8882
8883            <td class="entry_units">
8884            </td>
8885
8886            <td class="entry_range">
8887              <p>&gt;= 1</p>
8888            </td>
8889
8890            <td class="entry_tags">
8891            </td>
8892
8893          </tr>
8894
8895
8896          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8897           <!-- end of entry -->
8898        
8899        
8900
8901      <!-- end of kind -->
8902      </tbody>
8903      <tr><td colspan="6" class="kind">dynamic</td></tr>
8904
8905      <thead class="entries_header">
8906        <tr>
8907          <th class="th_name">Property Name</th>
8908          <th class="th_type">Type</th>
8909          <th class="th_description">Description</th>
8910          <th class="th_units">Units</th>
8911          <th class="th_range">Range</th>
8912          <th class="th_tags">Tags</th>
8913        </tr>
8914      </thead>
8915
8916      <tbody>
8917
8918        
8919
8920        
8921
8922        
8923
8924        
8925
8926                
8927          <tr class="entry" id="dynamic_android.request.frameCount">
8928            <td class="entry_name" rowspan="3">
8929              android.<wbr/>request.<wbr/>frame<wbr/>Count
8930            </td>
8931            <td class="entry_type">
8932                <span class="entry_type_name">int32</span>
8933
8934              <span class="entry_type_visibility"> [public]</span>
8935
8936
8937            </td> <!-- entry_type -->
8938
8939            <td class="entry_description">
8940              <p>A frame counter set by the framework.<wbr/> This value monotonically
8941increases with every new result (that is,<wbr/> each new result has a unique
8942frameCount value).<wbr/></p>
8943            </td>
8944
8945            <td class="entry_units">
8946              count of frames
8947            </td>
8948
8949            <td class="entry_range">
8950              <p>&gt; 0</p>
8951            </td>
8952
8953            <td class="entry_tags">
8954            </td>
8955
8956          </tr>
8957          <tr class="entries_header">
8958            <th class="th_details" colspan="5">Details</th>
8959          </tr>
8960          <tr class="entry_cont">
8961            <td class="entry_details" colspan="5">
8962              <p>Reset on release()</p>
8963            </td>
8964          </tr>
8965
8966
8967          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8968           <!-- end of entry -->
8969        
8970                
8971          <tr class="entry" id="dynamic_android.request.id">
8972            <td class="entry_name" rowspan="1">
8973              android.<wbr/>request.<wbr/>id
8974            </td>
8975            <td class="entry_type">
8976                <span class="entry_type_name">int32</span>
8977
8978              <span class="entry_type_visibility"> [hidden]</span>
8979
8980
8981            </td> <!-- entry_type -->
8982
8983            <td class="entry_description">
8984              <p>An application-specified ID for the current
8985request.<wbr/> Must be maintained unchanged in output
8986frame</p>
8987            </td>
8988
8989            <td class="entry_units">
8990              arbitrary integer assigned by application
8991            </td>
8992
8993            <td class="entry_range">
8994              <p>Any int</p>
8995            </td>
8996
8997            <td class="entry_tags">
8998              <ul class="entry_tags">
8999                  <li><a href="#tag_V1">V1</a></li>
9000              </ul>
9001            </td>
9002
9003          </tr>
9004
9005
9006          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9007           <!-- end of entry -->
9008        
9009                
9010          <tr class="entry" id="dynamic_android.request.metadataMode">
9011            <td class="entry_name" rowspan="1">
9012              android.<wbr/>request.<wbr/>metadata<wbr/>Mode
9013            </td>
9014            <td class="entry_type">
9015                <span class="entry_type_name entry_type_name_enum">byte</span>
9016
9017              <span class="entry_type_visibility"> [system]</span>
9018
9019                <ul class="entry_type_enum">
9020                  <li>
9021                    <span class="entry_type_enum_name">NONE</span>
9022                    <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
9023for application-bound buffer data.<wbr/> If no
9024application-bound streams exist,<wbr/> no frame should be
9025placed in the output frame queue.<wbr/> If such streams
9026exist,<wbr/> a frame should be placed on the output queue
9027with null metadata but with the necessary output buffer
9028information.<wbr/> Timestamp information should still be
9029included with any output stream buffers</p></span>
9030                  </li>
9031                  <li>
9032                    <span class="entry_type_enum_name">FULL</span>
9033                    <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
9034only be produced if they are separately
9035enabled</p></span>
9036                  </li>
9037                </ul>
9038
9039            </td> <!-- entry_type -->
9040
9041            <td class="entry_description">
9042              <p>How much metadata to produce on
9043output</p>
9044            </td>
9045
9046            <td class="entry_units">
9047            </td>
9048
9049            <td class="entry_range">
9050            </td>
9051
9052            <td class="entry_tags">
9053            </td>
9054
9055          </tr>
9056
9057
9058          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9059           <!-- end of entry -->
9060        
9061                
9062          <tr class="entry" id="dynamic_android.request.outputStreams">
9063            <td class="entry_name" rowspan="3">
9064              android.<wbr/>request.<wbr/>output<wbr/>Streams
9065            </td>
9066            <td class="entry_type">
9067                <span class="entry_type_name">int32</span>
9068                <span class="entry_type_container">x</span>
9069
9070                <span class="entry_type_array">
9071                  n
9072                </span>
9073              <span class="entry_type_visibility"> [system]</span>
9074
9075
9076            </td> <!-- entry_type -->
9077
9078            <td class="entry_description">
9079              <p>Lists which camera output streams image data
9080from this capture must be sent to</p>
9081            </td>
9082
9083            <td class="entry_units">
9084              List of camera stream IDs
9085            </td>
9086
9087            <td class="entry_range">
9088              <p>List must only include streams that have been
9089created</p>
9090            </td>
9091
9092            <td class="entry_tags">
9093              <ul class="entry_tags">
9094                  <li><a href="#tag_HAL2">HAL2</a></li>
9095              </ul>
9096            </td>
9097
9098          </tr>
9099          <tr class="entries_header">
9100            <th class="th_details" colspan="5">Details</th>
9101          </tr>
9102          <tr class="entry_cont">
9103            <td class="entry_details" colspan="5">
9104              <p>If no output streams are listed,<wbr/> then the image
9105data should simply be discarded.<wbr/> The image data must
9106still be captured for metadata and statistics production,<wbr/>
9107and the lens and flash must operate as requested.<wbr/></p>
9108            </td>
9109          </tr>
9110
9111
9112          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9113           <!-- end of entry -->
9114        
9115        
9116
9117      <!-- end of kind -->
9118      </tbody>
9119
9120  <!-- end of section -->
9121  <tr><td colspan="6" id="section_scaler" class="section">scaler</td></tr>
9122
9123
9124      <tr><td colspan="6" class="kind">controls</td></tr>
9125
9126      <thead class="entries_header">
9127        <tr>
9128          <th class="th_name">Property Name</th>
9129          <th class="th_type">Type</th>
9130          <th class="th_description">Description</th>
9131          <th class="th_units">Units</th>
9132          <th class="th_range">Range</th>
9133          <th class="th_tags">Tags</th>
9134        </tr>
9135      </thead>
9136
9137      <tbody>
9138
9139        
9140
9141        
9142
9143        
9144
9145        
9146
9147                
9148          <tr class="entry" id="controls_android.scaler.cropRegion">
9149            <td class="entry_name" rowspan="3">
9150              android.<wbr/>scaler.<wbr/>crop<wbr/>Region
9151            </td>
9152            <td class="entry_type">
9153                <span class="entry_type_name">int32</span>
9154                <span class="entry_type_container">x</span>
9155
9156                <span class="entry_type_array">
9157                  4
9158                </span>
9159              <span class="entry_type_visibility"> [public as rectangle]</span>
9160
9161
9162            </td> <!-- entry_type -->
9163
9164            <td class="entry_description">
9165              <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
9166<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
9167(width,<wbr/> height).<wbr/> The region of the sensor that is used for
9168output.<wbr/> Each stream must use this rectangle to produce its
9169output,<wbr/> cropping to a smaller region if necessary to
9170maintain the stream's aspect ratio.<wbr/></p>
9171<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
9172            </td>
9173
9174            <td class="entry_units">
9175              (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
9176          in pixels; (0,<wbr/>0) is top-left corner of
9177          android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
9178            </td>
9179
9180            <td class="entry_range">
9181            </td>
9182
9183            <td class="entry_tags">
9184              <ul class="entry_tags">
9185                  <li><a href="#tag_BC">BC</a></li>
9186              </ul>
9187            </td>
9188
9189          </tr>
9190          <tr class="entries_header">
9191            <th class="th_details" colspan="5">Details</th>
9192          </tr>
9193          <tr class="entry_cont">
9194            <td class="entry_details" colspan="5">
9195              <p>Any additional per-stream cropping must be done to
9196maximize the final pixel area of the stream.<wbr/></p>
9197<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
9198ratio,<wbr/> then 4:3 streams should use the exact crop
9199region.<wbr/> 16:9 streams should further crop vertically
9200(letterbox).<wbr/></p>
9201<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
9202outputs should crop horizontally (pillarbox),<wbr/> and 16:9
9203streams should match exactly.<wbr/> These additional crops must
9204be centered within the crop region.<wbr/></p>
9205<p>The output streams must maintain square pixels at all
9206times,<wbr/> no matter what the relative aspect ratios of the
9207crop region and the stream are.<wbr/>  Negative values for
9208corner are allowed for raw output if full pixel array is
9209larger than active pixel array.<wbr/> Width and height may be
9210rounded to nearest larger supportable width,<wbr/> especially
9211for raw output,<wbr/> where only a few fixed scales may be
9212possible.<wbr/> The width and height of the crop region cannot
9213be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
9214android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
9215activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
9216respectively.<wbr/></p>
9217            </td>
9218          </tr>
9219
9220
9221          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9222           <!-- end of entry -->
9223        
9224        
9225
9226      <!-- end of kind -->
9227      </tbody>
9228      <tr><td colspan="6" class="kind">static</td></tr>
9229
9230      <thead class="entries_header">
9231        <tr>
9232          <th class="th_name">Property Name</th>
9233          <th class="th_type">Type</th>
9234          <th class="th_description">Description</th>
9235          <th class="th_units">Units</th>
9236          <th class="th_range">Range</th>
9237          <th class="th_tags">Tags</th>
9238        </tr>
9239      </thead>
9240
9241      <tbody>
9242
9243        
9244
9245        
9246
9247        
9248
9249        
9250
9251                
9252          <tr class="entry" id="static_android.scaler.availableFormats">
9253            <td class="entry_name" rowspan="5">
9254              android.<wbr/>scaler.<wbr/>available<wbr/>Formats
9255            </td>
9256            <td class="entry_type">
9257                <span class="entry_type_name entry_type_name_enum">int32</span>
9258                <span class="entry_type_container">x</span>
9259
9260                <span class="entry_type_array">
9261                  n
9262                </span>
9263              <span class="entry_type_visibility"> [public as imageFormat]</span>
9264
9265                <ul class="entry_type_enum">
9266                  <li>
9267                    <span class="entry_type_enum_name">RAW_SENSOR</span>
9268                    <span class="entry_type_enum_optional">optional</span>
9269                    <span class="entry_type_enum_value">0x20</span>
9270                  </li>
9271                  <li>
9272                    <span class="entry_type_enum_name">YV12</span>
9273                    <span class="entry_type_enum_optional">optional</span>
9274                    <span class="entry_type_enum_value">0x32315659</span>
9275                    <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
9276                  </li>
9277                  <li>
9278                    <span class="entry_type_enum_name">YCrCb_420_SP</span>
9279                    <span class="entry_type_enum_optional">optional</span>
9280                    <span class="entry_type_enum_value">0x11</span>
9281                    <span class="entry_type_enum_notes"><p>NV21</p></span>
9282                  </li>
9283                  <li>
9284                    <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span>
9285                    <span class="entry_type_enum_value">0x22</span>
9286                    <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
9287                  </li>
9288                  <li>
9289                    <span class="entry_type_enum_name">YCbCr_420_888</span>
9290                    <span class="entry_type_enum_value">0x23</span>
9291                    <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
9292                  </li>
9293                  <li>
9294                    <span class="entry_type_enum_name">BLOB</span>
9295                    <span class="entry_type_enum_value">0x21</span>
9296                    <span class="entry_type_enum_notes"><p>JPEG format</p></span>
9297                  </li>
9298                </ul>
9299
9300            </td> <!-- entry_type -->
9301
9302            <td class="entry_description">
9303              <p>The list of image formats that are supported by this
9304camera device.<wbr/></p>
9305            </td>
9306
9307            <td class="entry_units">
9308            </td>
9309
9310            <td class="entry_range">
9311            </td>
9312
9313            <td class="entry_tags">
9314              <ul class="entry_tags">
9315                  <li><a href="#tag_BC">BC</a></li>
9316              </ul>
9317            </td>
9318
9319          </tr>
9320          <tr class="entries_header">
9321            <th class="th_details" colspan="5">Details</th>
9322          </tr>
9323          <tr class="entry_cont">
9324            <td class="entry_details" colspan="5">
9325              <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p>
9326<p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p>
9327            </td>
9328          </tr>
9329
9330          <tr class="entries_header">
9331            <th class="th_details" colspan="5">HAL Implementation Details</th>
9332          </tr>
9333          <tr class="entry_cont">
9334            <td class="entry_details" colspan="5">
9335              <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
9336system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
9337<p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform
9338gralloc module will select a format based on the usage flags provided
9339by the camera HAL device and the other endpoint of the stream.<wbr/> It is
9340usually used by preview and recording streams,<wbr/> where the application doesn't
9341need access the image data.<wbr/></p>
9342<p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream
9343needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p>
9344<p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p>
9345            </td>
9346          </tr>
9347
9348          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9349           <!-- end of entry -->
9350        
9351                
9352          <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
9353            <td class="entry_name" rowspan="3">
9354              android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
9355            </td>
9356            <td class="entry_type">
9357                <span class="entry_type_name">int64</span>
9358                <span class="entry_type_container">x</span>
9359
9360                <span class="entry_type_array">
9361                  n
9362                </span>
9363              <span class="entry_type_visibility"> [public]</span>
9364
9365
9366            </td> <!-- entry_type -->
9367
9368            <td class="entry_description">
9369              <p>The minimum frame duration that is supported
9370for each resolution in availableJpegSizes.<wbr/> Should
9371correspond to the frame duration when only that JPEG
9372stream is active and captured in a burst,<wbr/> with all
9373processing set to FAST</p>
9374            </td>
9375
9376            <td class="entry_units">
9377            </td>
9378
9379            <td class="entry_range">
9380            </td>
9381
9382            <td class="entry_tags">
9383              <ul class="entry_tags">
9384                  <li><a href="#tag_BC">BC</a></li>
9385              </ul>
9386            </td>
9387
9388          </tr>
9389          <tr class="entries_header">
9390            <th class="th_details" colspan="5">Details</th>
9391          </tr>
9392          <tr class="entry_cont">
9393            <td class="entry_details" colspan="5">
9394              <p>When multiple streams are configured,<wbr/> the minimum
9395frame duration will be &gt;= max(individual stream min
9396durations)</p>
9397            </td>
9398          </tr>
9399
9400
9401          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9402           <!-- end of entry -->
9403        
9404                
9405          <tr class="entry" id="static_android.scaler.availableJpegSizes">
9406            <td class="entry_name" rowspan="5">
9407              android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
9408            </td>
9409            <td class="entry_type">
9410                <span class="entry_type_name">int32</span>
9411                <span class="entry_type_container">x</span>
9412
9413                <span class="entry_type_array">
9414                  n x 2
9415                </span>
9416              <span class="entry_type_visibility"> [public as size]</span>
9417
9418
9419            </td> <!-- entry_type -->
9420
9421            <td class="entry_description">
9422              <p>The JPEG resolutions that are supported by this camera device.<wbr/></p>
9423            </td>
9424
9425            <td class="entry_units">
9426            </td>
9427
9428            <td class="entry_range">
9429            </td>
9430
9431            <td class="entry_tags">
9432              <ul class="entry_tags">
9433                  <li><a href="#tag_BC">BC</a></li>
9434              </ul>
9435            </td>
9436
9437          </tr>
9438          <tr class="entries_header">
9439            <th class="th_details" colspan="5">Details</th>
9440          </tr>
9441          <tr class="entry_cont">
9442            <td class="entry_details" colspan="5">
9443              <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support
9444sensor 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>
9445            </td>
9446          </tr>
9447
9448          <tr class="entries_header">
9449            <th class="th_details" colspan="5">HAL Implementation Details</th>
9450          </tr>
9451          <tr class="entry_cont">
9452            <td class="entry_details" colspan="5">
9453              <p>The HAL must include sensor maximum resolution
9454(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/>
9455and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p>
9456            </td>
9457          </tr>
9458
9459          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9460           <!-- end of entry -->
9461        
9462                
9463          <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
9464            <td class="entry_name" rowspan="1">
9465              android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom
9466            </td>
9467            <td class="entry_type">
9468                <span class="entry_type_name">float</span>
9469
9470              <span class="entry_type_visibility"> [public]</span>
9471
9472
9473            </td> <!-- entry_type -->
9474
9475            <td class="entry_description">
9476              <p>The maximum ratio between active area width
9477and crop region width,<wbr/> or between active area height and
9478crop region height,<wbr/> if the crop region height is larger
9479than width</p>
9480            </td>
9481
9482            <td class="entry_units">
9483            </td>
9484
9485            <td class="entry_range">
9486              <p>&gt;=1</p>
9487            </td>
9488
9489            <td class="entry_tags">
9490              <ul class="entry_tags">
9491                  <li><a href="#tag_BC">BC</a></li>
9492              </ul>
9493            </td>
9494
9495          </tr>
9496
9497
9498          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9499           <!-- end of entry -->
9500        
9501                
9502          <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
9503            <td class="entry_name" rowspan="3">
9504              android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
9505            </td>
9506            <td class="entry_type">
9507                <span class="entry_type_name">int64</span>
9508                <span class="entry_type_container">x</span>
9509
9510                <span class="entry_type_array">
9511                  n
9512                </span>
9513              <span class="entry_type_visibility"> [public]</span>
9514
9515
9516            </td> <!-- entry_type -->
9517
9518            <td class="entry_description">
9519              <p>The minimum frame duration that is supported
9520for each resolution in availableProcessedSizes.<wbr/> Should
9521correspond to the frame duration when only that processed
9522stream is active,<wbr/> with all processing set to
9523FAST</p>
9524            </td>
9525
9526            <td class="entry_units">
9527            </td>
9528
9529            <td class="entry_range">
9530            </td>
9531
9532            <td class="entry_tags">
9533              <ul class="entry_tags">
9534                  <li><a href="#tag_BC">BC</a></li>
9535              </ul>
9536            </td>
9537
9538          </tr>
9539          <tr class="entries_header">
9540            <th class="th_details" colspan="5">Details</th>
9541          </tr>
9542          <tr class="entry_cont">
9543            <td class="entry_details" colspan="5">
9544              <p>When multiple streams are configured,<wbr/> the minimum
9545frame duration will be &gt;= max(individual stream min
9546durations)</p>
9547            </td>
9548          </tr>
9549
9550
9551          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9552           <!-- end of entry -->
9553        
9554                
9555          <tr class="entry" id="static_android.scaler.availableProcessedSizes">
9556            <td class="entry_name" rowspan="5">
9557              android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes
9558            </td>
9559            <td class="entry_type">
9560                <span class="entry_type_name">int32</span>
9561                <span class="entry_type_container">x</span>
9562
9563                <span class="entry_type_array">
9564                  n x 2
9565                </span>
9566              <span class="entry_type_visibility"> [public as size]</span>
9567
9568
9569            </td> <!-- entry_type -->
9570
9571            <td class="entry_description">
9572              <p>The resolutions available for use with
9573processed output streams,<wbr/> such as YV12,<wbr/> NV12,<wbr/> and
9574platform opaque YUV/<wbr/>RGB streams to the GPU or video
9575encoders.<wbr/></p>
9576            </td>
9577
9578            <td class="entry_units">
9579            </td>
9580
9581            <td class="entry_range">
9582            </td>
9583
9584            <td class="entry_tags">
9585              <ul class="entry_tags">
9586                  <li><a href="#tag_BC">BC</a></li>
9587              </ul>
9588            </td>
9589
9590          </tr>
9591          <tr class="entries_header">
9592            <th class="th_details" colspan="5">Details</th>
9593          </tr>
9594          <tr class="entry_cont">
9595            <td class="entry_details" colspan="5">
9596              <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p>
9597<p>For a given use case,<wbr/> the actual maximum supported resolution
9598may be lower than what is listed here,<wbr/> depending on the destination
9599Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
9600the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
9601smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
9602can provide.<wbr/></p>
9603<p>Please reference the documentation for the image data destination to
9604check if it limits the maximum size for image data.<wbr/></p>
9605            </td>
9606          </tr>
9607
9608          <tr class="entries_header">
9609            <th class="th_details" colspan="5">HAL Implementation Details</th>
9610          </tr>
9611          <tr class="entry_cont">
9612            <td class="entry_details" colspan="5">
9613              <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/>
9614the HAL must include all JPEG sizes listed in android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
9615and each below resolution if it is smaller than or equal to the sensor
9616maximum resolution (if they are not listed in JPEG sizes already):</p>
9617<ul>
9618<li>240p (320 x 240)</li>
9619<li>480p (640 x 480)</li>
9620<li>720p (1280 x 720)</li>
9621<li>1080p (1920 x 1080)</li>
9622</ul>
9623<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/>
9624the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p>
9625            </td>
9626          </tr>
9627
9628          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9629           <!-- end of entry -->
9630        
9631                
9632          <tr class="entry" id="static_android.scaler.availableRawMinDurations">
9633            <td class="entry_name" rowspan="3">
9634              android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations
9635            </td>
9636            <td class="entry_type">
9637                <span class="entry_type_name">int64</span>
9638                <span class="entry_type_container">x</span>
9639
9640                <span class="entry_type_array">
9641                  n
9642                </span>
9643              <span class="entry_type_visibility"> [system]</span>
9644
9645
9646            </td> <!-- entry_type -->
9647
9648            <td class="entry_description">
9649              <p>The minimum frame duration that is supported
9650for each raw resolution in availableRawSizes.<wbr/> Should
9651correspond to the frame duration when only the raw stream
9652is active.<wbr/></p>
9653            </td>
9654
9655            <td class="entry_units">
9656            </td>
9657
9658            <td class="entry_range">
9659            </td>
9660
9661            <td class="entry_tags">
9662              <ul class="entry_tags">
9663                  <li><a href="#tag_BC">BC</a></li>
9664              </ul>
9665            </td>
9666
9667          </tr>
9668          <tr class="entries_header">
9669            <th class="th_details" colspan="5">Details</th>
9670          </tr>
9671          <tr class="entry_cont">
9672            <td class="entry_details" colspan="5">
9673              <p>When multiple streams are configured,<wbr/> the minimum
9674frame duration will be &gt;= max(individual stream min
9675durations)</p>
9676            </td>
9677          </tr>
9678
9679
9680          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9681           <!-- end of entry -->
9682        
9683                
9684          <tr class="entry" id="static_android.scaler.availableRawSizes">
9685            <td class="entry_name" rowspan="1">
9686              android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes
9687            </td>
9688            <td class="entry_type">
9689                <span class="entry_type_name">int32</span>
9690                <span class="entry_type_container">x</span>
9691
9692                <span class="entry_type_array">
9693                  n x 2
9694                </span>
9695              <span class="entry_type_visibility"> [system as size]</span>
9696
9697
9698            </td> <!-- entry_type -->
9699
9700            <td class="entry_description">
9701              <p>The resolutions available for use with raw
9702sensor output streams,<wbr/> listed as width,<wbr/>
9703height</p>
9704            </td>
9705
9706            <td class="entry_units">
9707            </td>
9708
9709            <td class="entry_range">
9710              <p>Must include: - sensor maximum resolution</p>
9711            </td>
9712
9713            <td class="entry_tags">
9714            </td>
9715
9716          </tr>
9717
9718
9719          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9720           <!-- end of entry -->
9721        
9722        
9723
9724      <!-- end of kind -->
9725      </tbody>
9726      <tr><td colspan="6" class="kind">dynamic</td></tr>
9727
9728      <thead class="entries_header">
9729        <tr>
9730          <th class="th_name">Property Name</th>
9731          <th class="th_type">Type</th>
9732          <th class="th_description">Description</th>
9733          <th class="th_units">Units</th>
9734          <th class="th_range">Range</th>
9735          <th class="th_tags">Tags</th>
9736        </tr>
9737      </thead>
9738
9739      <tbody>
9740
9741        
9742
9743        
9744
9745        
9746
9747        
9748
9749                
9750          <tr class="entry" id="dynamic_android.scaler.cropRegion">
9751            <td class="entry_name" rowspan="3">
9752              android.<wbr/>scaler.<wbr/>crop<wbr/>Region
9753            </td>
9754            <td class="entry_type">
9755                <span class="entry_type_name">int32</span>
9756                <span class="entry_type_container">x</span>
9757
9758                <span class="entry_type_array">
9759                  4
9760                </span>
9761              <span class="entry_type_visibility"> [public as rectangle]</span>
9762
9763
9764            </td> <!-- entry_type -->
9765
9766            <td class="entry_description">
9767              <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
9768<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
9769(width,<wbr/> height).<wbr/> The region of the sensor that is used for
9770output.<wbr/> Each stream must use this rectangle to produce its
9771output,<wbr/> cropping to a smaller region if necessary to
9772maintain the stream's aspect ratio.<wbr/></p>
9773<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
9774            </td>
9775
9776            <td class="entry_units">
9777              (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
9778          in pixels; (0,<wbr/>0) is top-left corner of
9779          android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
9780            </td>
9781
9782            <td class="entry_range">
9783            </td>
9784
9785            <td class="entry_tags">
9786              <ul class="entry_tags">
9787                  <li><a href="#tag_BC">BC</a></li>
9788              </ul>
9789            </td>
9790
9791          </tr>
9792          <tr class="entries_header">
9793            <th class="th_details" colspan="5">Details</th>
9794          </tr>
9795          <tr class="entry_cont">
9796            <td class="entry_details" colspan="5">
9797              <p>Any additional per-stream cropping must be done to
9798maximize the final pixel area of the stream.<wbr/></p>
9799<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
9800ratio,<wbr/> then 4:3 streams should use the exact crop
9801region.<wbr/> 16:9 streams should further crop vertically
9802(letterbox).<wbr/></p>
9803<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
9804outputs should crop horizontally (pillarbox),<wbr/> and 16:9
9805streams should match exactly.<wbr/> These additional crops must
9806be centered within the crop region.<wbr/></p>
9807<p>The output streams must maintain square pixels at all
9808times,<wbr/> no matter what the relative aspect ratios of the
9809crop region and the stream are.<wbr/>  Negative values for
9810corner are allowed for raw output if full pixel array is
9811larger than active pixel array.<wbr/> Width and height may be
9812rounded to nearest larger supportable width,<wbr/> especially
9813for raw output,<wbr/> where only a few fixed scales may be
9814possible.<wbr/> The width and height of the crop region cannot
9815be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
9816android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
9817activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
9818respectively.<wbr/></p>
9819            </td>
9820          </tr>
9821
9822
9823          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9824           <!-- end of entry -->
9825        
9826        
9827
9828      <!-- end of kind -->
9829      </tbody>
9830
9831  <!-- end of section -->
9832  <tr><td colspan="6" id="section_sensor" class="section">sensor</td></tr>
9833
9834
9835      <tr><td colspan="6" class="kind">controls</td></tr>
9836
9837      <thead class="entries_header">
9838        <tr>
9839          <th class="th_name">Property Name</th>
9840          <th class="th_type">Type</th>
9841          <th class="th_description">Description</th>
9842          <th class="th_units">Units</th>
9843          <th class="th_range">Range</th>
9844          <th class="th_tags">Tags</th>
9845        </tr>
9846      </thead>
9847
9848      <tbody>
9849
9850        
9851
9852        
9853
9854        
9855
9856        
9857
9858                
9859          <tr class="entry" id="controls_android.sensor.exposureTime">
9860            <td class="entry_name" rowspan="3">
9861              android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
9862            </td>
9863            <td class="entry_type">
9864                <span class="entry_type_name">int64</span>
9865
9866              <span class="entry_type_visibility"> [public]</span>
9867
9868
9869            </td> <!-- entry_type -->
9870
9871            <td class="entry_description">
9872              <p>Duration each pixel is exposed to
9873light.<wbr/></p>
9874<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
9875duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
9876            </td>
9877
9878            <td class="entry_units">
9879              nanoseconds
9880            </td>
9881
9882            <td class="entry_range">
9883              <p><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></p>
9884            </td>
9885
9886            <td class="entry_tags">
9887              <ul class="entry_tags">
9888                  <li><a href="#tag_V1">V1</a></li>
9889              </ul>
9890            </td>
9891
9892          </tr>
9893          <tr class="entries_header">
9894            <th class="th_details" colspan="5">Details</th>
9895          </tr>
9896          <tr class="entry_cont">
9897            <td class="entry_details" colspan="5">
9898              <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
9899            </td>
9900          </tr>
9901
9902
9903          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9904           <!-- end of entry -->
9905        
9906                
9907          <tr class="entry" id="controls_android.sensor.frameDuration">
9908            <td class="entry_name" rowspan="3">
9909              android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
9910            </td>
9911            <td class="entry_type">
9912                <span class="entry_type_name">int64</span>
9913
9914              <span class="entry_type_visibility"> [public]</span>
9915
9916
9917            </td> <!-- entry_type -->
9918
9919            <td class="entry_description">
9920              <p>Duration from start of frame exposure to
9921start of next frame exposure</p>
9922            </td>
9923
9924            <td class="entry_units">
9925              nanoseconds
9926            </td>
9927
9928            <td class="entry_range">
9929              <p>see <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
9930android.<wbr/>scaler.<wbr/>info.<wbr/>available<wbr/>Min<wbr/>Frame<wbr/>Durations</p>
9931            </td>
9932
9933            <td class="entry_tags">
9934              <ul class="entry_tags">
9935                  <li><a href="#tag_V1">V1</a></li>
9936                  <li><a href="#tag_BC">BC</a></li>
9937              </ul>
9938            </td>
9939
9940          </tr>
9941          <tr class="entries_header">
9942            <th class="th_details" colspan="5">Details</th>
9943          </tr>
9944          <tr class="entry_cont">
9945            <td class="entry_details" colspan="5">
9946              <p>Exposure time has priority,<wbr/> so duration is set to
9947max(duration,<wbr/> exposure time + overhead)</p>
9948            </td>
9949          </tr>
9950
9951
9952          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9953           <!-- end of entry -->
9954        
9955                
9956          <tr class="entry" id="controls_android.sensor.sensitivity">
9957            <td class="entry_name" rowspan="3">
9958              android.<wbr/>sensor.<wbr/>sensitivity
9959            </td>
9960            <td class="entry_type">
9961                <span class="entry_type_name">int32</span>
9962
9963              <span class="entry_type_visibility"> [public]</span>
9964
9965
9966            </td> <!-- entry_type -->
9967
9968            <td class="entry_description">
9969              <p>Gain applied to image data.<wbr/> Must be
9970implemented through analog gain only if set to values
9971below 'maximum analog sensitivity'.<wbr/></p>
9972<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
9973gain to the nearest possible value (rather than gain more).<wbr/></p>
9974            </td>
9975
9976            <td class="entry_units">
9977              ISO arithmetic units
9978            </td>
9979
9980            <td class="entry_range">
9981              <p><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></p>
9982            </td>
9983
9984            <td class="entry_tags">
9985              <ul class="entry_tags">
9986                  <li><a href="#tag_V1">V1</a></li>
9987              </ul>
9988            </td>
9989
9990          </tr>
9991          <tr class="entries_header">
9992            <th class="th_details" colspan="5">Details</th>
9993          </tr>
9994          <tr class="entry_cont">
9995            <td class="entry_details" colspan="5">
9996              <p>ISO 12232:2006 REI method</p>
9997            </td>
9998          </tr>
9999
10000
10001          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10002           <!-- end of entry -->
10003        
10004        
10005
10006      <!-- end of kind -->
10007      </tbody>
10008      <tr><td colspan="6" class="kind">static</td></tr>
10009
10010      <thead class="entries_header">
10011        <tr>
10012          <th class="th_name">Property Name</th>
10013          <th class="th_type">Type</th>
10014          <th class="th_description">Description</th>
10015          <th class="th_units">Units</th>
10016          <th class="th_range">Range</th>
10017          <th class="th_tags">Tags</th>
10018        </tr>
10019      </thead>
10020
10021      <tbody>
10022
10023        
10024
10025        
10026
10027        
10028
10029        
10030                
10031            
10032
10033                
10034          <tr class="entry" id="static_android.sensor.info.activeArraySize">
10035            <td class="entry_name" rowspan="1">
10036              android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
10037            </td>
10038            <td class="entry_type">
10039                <span class="entry_type_name">int32</span>
10040                <span class="entry_type_container">x</span>
10041
10042                <span class="entry_type_array">
10043                  4
10044                </span>
10045              <span class="entry_type_visibility"> [public as rectangle]</span>
10046                <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
10047
10048
10049            </td> <!-- entry_type -->
10050
10051            <td class="entry_description">
10052              <p>Area of raw data which corresponds to only
10053active pixels; smaller or equal to
10054pixelArraySize.<wbr/></p>
10055            </td>
10056
10057            <td class="entry_units">
10058              xmin,<wbr/> ymin,<wbr/> width,<wbr/> height.<wbr/> Top left of full
10059            pixel array is (0,<wbr/>0)
10060            </td>
10061
10062            <td class="entry_range">
10063            </td>
10064
10065            <td class="entry_tags">
10066              <ul class="entry_tags">
10067                  <li><a href="#tag_DNG">DNG</a></li>
10068              </ul>
10069            </td>
10070
10071          </tr>
10072
10073
10074          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10075           <!-- end of entry -->
10076        
10077                
10078          <tr class="entry" id="static_android.sensor.info.sensitivityRange">
10079            <td class="entry_name" rowspan="1">
10080              android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range
10081            </td>
10082            <td class="entry_type">
10083                <span class="entry_type_name">int32</span>
10084                <span class="entry_type_container">x</span>
10085
10086                <span class="entry_type_array">
10087                  2
10088                </span>
10089              <span class="entry_type_visibility"> [public]</span>
10090                <div class="entry_type_notes">Range of supported sensitivities</div>
10091
10092
10093            </td> <!-- entry_type -->
10094
10095            <td class="entry_description">
10096              <p>Range of valid sensitivities</p>
10097            </td>
10098
10099            <td class="entry_units">
10100            </td>
10101
10102            <td class="entry_range">
10103              <p>Min &lt;= 100,<wbr/> Max &gt;= 1600</p>
10104            </td>
10105
10106            <td class="entry_tags">
10107              <ul class="entry_tags">
10108                  <li><a href="#tag_BC">BC</a></li>
10109                  <li><a href="#tag_V1">V1</a></li>
10110              </ul>
10111            </td>
10112
10113          </tr>
10114
10115
10116          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10117           <!-- end of entry -->
10118        
10119                
10120          <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
10121            <td class="entry_name" rowspan="1">
10122              android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement
10123            </td>
10124            <td class="entry_type">
10125                <span class="entry_type_name entry_type_name_enum">byte</span>
10126
10127              <span class="entry_type_visibility"> [system]</span>
10128
10129                <ul class="entry_type_enum">
10130                  <li>
10131                    <span class="entry_type_enum_name">RGGB</span>
10132                  </li>
10133                  <li>
10134                    <span class="entry_type_enum_name">GRBG</span>
10135                  </li>
10136                  <li>
10137                    <span class="entry_type_enum_name">GBRG</span>
10138                  </li>
10139                  <li>
10140                    <span class="entry_type_enum_name">BGGR</span>
10141                  </li>
10142                  <li>
10143                    <span class="entry_type_enum_name">RGB</span>
10144                    <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
10145values for each pixel,<wbr/> instead of just 1 16-bit value
10146per pixel.<wbr/></p></span>
10147                  </li>
10148                </ul>
10149
10150            </td> <!-- entry_type -->
10151
10152            <td class="entry_description">
10153              <p>Arrangement of color filters on sensor;
10154represents the colors in the top-left 2x2 section of
10155the sensor,<wbr/> in reading order</p>
10156            </td>
10157
10158            <td class="entry_units">
10159            </td>
10160
10161            <td class="entry_range">
10162            </td>
10163
10164            <td class="entry_tags">
10165              <ul class="entry_tags">
10166                  <li><a href="#tag_DNG">DNG</a></li>
10167              </ul>
10168            </td>
10169
10170          </tr>
10171
10172
10173          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10174           <!-- end of entry -->
10175        
10176                
10177          <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
10178            <td class="entry_name" rowspan="1">
10179              android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range
10180            </td>
10181            <td class="entry_type">
10182                <span class="entry_type_name">int64</span>
10183                <span class="entry_type_container">x</span>
10184
10185                <span class="entry_type_array">
10186                  2
10187                </span>
10188              <span class="entry_type_visibility"> [public]</span>
10189                <div class="entry_type_notes">nanoseconds</div>
10190
10191
10192            </td> <!-- entry_type -->
10193
10194            <td class="entry_description">
10195              <p>Range of valid exposure
10196times</p>
10197            </td>
10198
10199            <td class="entry_units">
10200            </td>
10201
10202            <td class="entry_range">
10203              <p>Min &lt;= 100e3 (100 us),<wbr/> Max &gt;= 30e9 (30
10204sec)</p>
10205            </td>
10206
10207            <td class="entry_tags">
10208              <ul class="entry_tags">
10209                  <li><a href="#tag_V1">V1</a></li>
10210              </ul>
10211            </td>
10212
10213          </tr>
10214
10215
10216          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10217           <!-- end of entry -->
10218        
10219                
10220          <tr class="entry" id="static_android.sensor.info.maxFrameDuration">
10221            <td class="entry_name" rowspan="3">
10222              android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration
10223            </td>
10224            <td class="entry_type">
10225                <span class="entry_type_name">int64</span>
10226
10227              <span class="entry_type_visibility"> [public]</span>
10228
10229
10230            </td> <!-- entry_type -->
10231
10232            <td class="entry_description">
10233              <p>Maximum possible frame duration (minimum frame
10234rate)</p>
10235            </td>
10236
10237            <td class="entry_units">
10238              nanoseconds
10239            </td>
10240
10241            <td class="entry_range">
10242              <p>&gt;= 30e9</p>
10243            </td>
10244
10245            <td class="entry_tags">
10246              <ul class="entry_tags">
10247                  <li><a href="#tag_BC">BC</a></li>
10248                  <li><a href="#tag_V1">V1</a></li>
10249              </ul>
10250            </td>
10251
10252          </tr>
10253          <tr class="entries_header">
10254            <th class="th_details" colspan="5">Details</th>
10255          </tr>
10256          <tr class="entry_cont">
10257            <td class="entry_details" colspan="5">
10258              <p>Minimum duration is a function of resolution,<wbr/>
10259processing settings.<wbr/> See
10260android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
10261android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
10262<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a></p>
10263            </td>
10264          </tr>
10265
10266
10267          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10268           <!-- end of entry -->
10269        
10270                
10271          <tr class="entry" id="static_android.sensor.info.physicalSize">
10272            <td class="entry_name" rowspan="3">
10273              android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size
10274            </td>
10275            <td class="entry_type">
10276                <span class="entry_type_name">float</span>
10277                <span class="entry_type_container">x</span>
10278
10279                <span class="entry_type_array">
10280                  2
10281                </span>
10282              <span class="entry_type_visibility"> [public]</span>
10283                <div class="entry_type_notes">width x height in millimeters</div>
10284
10285
10286            </td> <!-- entry_type -->
10287
10288            <td class="entry_description">
10289              <p>The physical dimensions of the full pixel
10290array</p>
10291            </td>
10292
10293            <td class="entry_units">
10294            </td>
10295
10296            <td class="entry_range">
10297            </td>
10298
10299            <td class="entry_tags">
10300              <ul class="entry_tags">
10301                  <li><a href="#tag_V1">V1</a></li>
10302                  <li><a href="#tag_BC">BC</a></li>
10303              </ul>
10304            </td>
10305
10306          </tr>
10307          <tr class="entries_header">
10308            <th class="th_details" colspan="5">Details</th>
10309          </tr>
10310          <tr class="entry_cont">
10311            <td class="entry_details" colspan="5">
10312              <p>Needed for FOV calculation for old API</p>
10313            </td>
10314          </tr>
10315
10316
10317          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10318           <!-- end of entry -->
10319        
10320                
10321          <tr class="entry" id="static_android.sensor.info.pixelArraySize">
10322            <td class="entry_name" rowspan="3">
10323              android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size
10324            </td>
10325            <td class="entry_type">
10326                <span class="entry_type_name">int32</span>
10327                <span class="entry_type_container">x</span>
10328
10329                <span class="entry_type_array">
10330                  2
10331                </span>
10332              <span class="entry_type_visibility"> [system as size]</span>
10333
10334
10335            </td> <!-- entry_type -->
10336
10337            <td class="entry_description">
10338              <p>Dimensions of full pixel array,<wbr/> possibly
10339including black calibration pixels</p>
10340            </td>
10341
10342            <td class="entry_units">
10343            </td>
10344
10345            <td class="entry_range">
10346            </td>
10347
10348            <td class="entry_tags">
10349              <ul class="entry_tags">
10350                  <li><a href="#tag_DNG">DNG</a></li>
10351                  <li><a href="#tag_BC">BC</a></li>
10352              </ul>
10353            </td>
10354
10355          </tr>
10356          <tr class="entries_header">
10357            <th class="th_details" colspan="5">Details</th>
10358          </tr>
10359          <tr class="entry_cont">
10360            <td class="entry_details" colspan="5">
10361              <p>Maximum output resolution for raw format must
10362match this in
10363android.<wbr/>scaler.<wbr/>info.<wbr/>available<wbr/>Sizes<wbr/>Per<wbr/>Format</p>
10364            </td>
10365          </tr>
10366
10367
10368          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10369           <!-- end of entry -->
10370        
10371                
10372          <tr class="entry" id="static_android.sensor.info.whiteLevel">
10373            <td class="entry_name" rowspan="3">
10374              android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level
10375            </td>
10376            <td class="entry_type">
10377                <span class="entry_type_name">int32</span>
10378
10379              <span class="entry_type_visibility"> [system]</span>
10380
10381
10382            </td> <!-- entry_type -->
10383
10384            <td class="entry_description">
10385              <p>Maximum raw value output by
10386sensor</p>
10387            </td>
10388
10389            <td class="entry_units">
10390            </td>
10391
10392            <td class="entry_range">
10393              <p>&gt; 1024 (10-bit output)</p>
10394            </td>
10395
10396            <td class="entry_tags">
10397              <ul class="entry_tags">
10398                  <li><a href="#tag_DNG">DNG</a></li>
10399              </ul>
10400            </td>
10401
10402          </tr>
10403          <tr class="entries_header">
10404            <th class="th_details" colspan="5">Details</th>
10405          </tr>
10406          <tr class="entry_cont">
10407            <td class="entry_details" colspan="5">
10408              <p>Defines sensor bit depth (10-14 bits is
10409expected)</p>
10410            </td>
10411          </tr>
10412
10413
10414          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10415           <!-- end of entry -->
10416        
10417        
10418        
10419
10420                
10421          <tr class="entry" id="static_android.sensor.baseGainFactor">
10422            <td class="entry_name" rowspan="1">
10423              android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor
10424            </td>
10425            <td class="entry_type">
10426                <span class="entry_type_name">rational</span>
10427
10428              <span class="entry_type_visibility"> [public]</span>
10429
10430
10431            </td> <!-- entry_type -->
10432
10433            <td class="entry_description">
10434              <p>Gain factor from electrons to raw units when
10435ISO=100</p>
10436            </td>
10437
10438            <td class="entry_units">
10439            </td>
10440
10441            <td class="entry_range">
10442            </td>
10443
10444            <td class="entry_tags">
10445              <ul class="entry_tags">
10446                  <li><a href="#tag_V1">V1</a></li>
10447                  <li><a href="#tag_FULL">FULL</a></li>
10448              </ul>
10449            </td>
10450
10451          </tr>
10452
10453
10454          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10455           <!-- end of entry -->
10456        
10457                
10458          <tr class="entry" id="static_android.sensor.blackLevelPattern">
10459            <td class="entry_name" rowspan="3">
10460              android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern
10461            </td>
10462            <td class="entry_type">
10463                <span class="entry_type_name">int32</span>
10464                <span class="entry_type_container">x</span>
10465
10466                <span class="entry_type_array">
10467                  4
10468                </span>
10469              <span class="entry_type_visibility"> [system]</span>
10470                <div class="entry_type_notes">2x2 raw count block</div>
10471
10472
10473            </td> <!-- entry_type -->
10474
10475            <td class="entry_description">
10476              <p>A fixed black level offset for each of the
10477Bayer mosaic channels</p>
10478            </td>
10479
10480            <td class="entry_units">
10481            </td>
10482
10483            <td class="entry_range">
10484              <p>&gt;= 0 each</p>
10485            </td>
10486
10487            <td class="entry_tags">
10488              <ul class="entry_tags">
10489                  <li><a href="#tag_DNG">DNG</a></li>
10490              </ul>
10491            </td>
10492
10493          </tr>
10494          <tr class="entries_header">
10495            <th class="th_details" colspan="5">Details</th>
10496          </tr>
10497          <tr class="entry_cont">
10498            <td class="entry_details" colspan="5">
10499              <p>As per DNG BlackLevelRepeatDim /<wbr/> BlackLevel
10500tags</p>
10501            </td>
10502          </tr>
10503
10504
10505          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10506           <!-- end of entry -->
10507        
10508                
10509          <tr class="entry" id="static_android.sensor.calibrationTransform1">
10510            <td class="entry_name" rowspan="1">
10511              android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1
10512            </td>
10513            <td class="entry_type">
10514                <span class="entry_type_name">rational</span>
10515                <span class="entry_type_container">x</span>
10516
10517                <span class="entry_type_array">
10518                  9
10519                </span>
10520              <span class="entry_type_visibility"> [system]</span>
10521                <div class="entry_type_notes">3x3 matrix in row-major-order</div>
10522
10523
10524            </td> <!-- entry_type -->
10525
10526            <td class="entry_description">
10527              <p>Per-device calibration on top of color space
10528transform 1</p>
10529            </td>
10530
10531            <td class="entry_units">
10532            </td>
10533
10534            <td class="entry_range">
10535            </td>
10536
10537            <td class="entry_tags">
10538              <ul class="entry_tags">
10539                  <li><a href="#tag_DNG">DNG</a></li>
10540              </ul>
10541            </td>
10542
10543          </tr>
10544
10545
10546          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10547           <!-- end of entry -->
10548        
10549                
10550          <tr class="entry" id="static_android.sensor.calibrationTransform2">
10551            <td class="entry_name" rowspan="1">
10552              android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2
10553            </td>
10554            <td class="entry_type">
10555                <span class="entry_type_name">rational</span>
10556                <span class="entry_type_container">x</span>
10557
10558                <span class="entry_type_array">
10559                  9
10560                </span>
10561              <span class="entry_type_visibility"> [system]</span>
10562                <div class="entry_type_notes">3x3 matrix in row-major-order</div>
10563
10564
10565            </td> <!-- entry_type -->
10566
10567            <td class="entry_description">
10568              <p>Per-device calibration on top of color space
10569transform 2</p>
10570            </td>
10571
10572            <td class="entry_units">
10573            </td>
10574
10575            <td class="entry_range">
10576            </td>
10577
10578            <td class="entry_tags">
10579              <ul class="entry_tags">
10580                  <li><a href="#tag_DNG">DNG</a></li>
10581              </ul>
10582            </td>
10583
10584          </tr>
10585
10586
10587          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10588           <!-- end of entry -->
10589        
10590                
10591          <tr class="entry" id="static_android.sensor.colorTransform1">
10592            <td class="entry_name" rowspan="3">
10593              android.<wbr/>sensor.<wbr/>color<wbr/>Transform1
10594            </td>
10595            <td class="entry_type">
10596                <span class="entry_type_name">rational</span>
10597                <span class="entry_type_container">x</span>
10598
10599                <span class="entry_type_array">
10600                  9
10601                </span>
10602              <span class="entry_type_visibility"> [system]</span>
10603                <div class="entry_type_notes">3x3 matrix in row-major-order</div>
10604
10605
10606            </td> <!-- entry_type -->
10607
10608            <td class="entry_description">
10609              <p>Linear mapping from XYZ (D50) color space to
10610reference linear sensor color,<wbr/> for first reference
10611illuminant</p>
10612            </td>
10613
10614            <td class="entry_units">
10615            </td>
10616
10617            <td class="entry_range">
10618            </td>
10619
10620            <td class="entry_tags">
10621              <ul class="entry_tags">
10622                  <li><a href="#tag_DNG">DNG</a></li>
10623              </ul>
10624            </td>
10625
10626          </tr>
10627          <tr class="entries_header">
10628            <th class="th_details" colspan="5">Details</th>
10629          </tr>
10630          <tr class="entry_cont">
10631            <td class="entry_details" colspan="5">
10632              <p>Use as follows XYZ = inv(transform) * clip( (raw -
10633black level(raw) ) /<wbr/> ( white level - max black level) ).<wbr/>
10634At least in the simple case</p>
10635            </td>
10636          </tr>
10637
10638
10639          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10640           <!-- end of entry -->
10641        
10642                
10643          <tr class="entry" id="static_android.sensor.colorTransform2">
10644            <td class="entry_name" rowspan="1">
10645              android.<wbr/>sensor.<wbr/>color<wbr/>Transform2
10646            </td>
10647            <td class="entry_type">
10648                <span class="entry_type_name">rational</span>
10649                <span class="entry_type_container">x</span>
10650
10651                <span class="entry_type_array">
10652                  9
10653                </span>
10654              <span class="entry_type_visibility"> [system]</span>
10655                <div class="entry_type_notes">3x3 matrix in row-major-order</div>
10656
10657
10658            </td> <!-- entry_type -->
10659
10660            <td class="entry_description">
10661              <p>Linear mapping from XYZ (D50) color space to
10662reference linear sensor color,<wbr/> for second reference
10663illuminant</p>
10664            </td>
10665
10666            <td class="entry_units">
10667            </td>
10668
10669            <td class="entry_range">
10670            </td>
10671
10672            <td class="entry_tags">
10673              <ul class="entry_tags">
10674                  <li><a href="#tag_DNG">DNG</a></li>
10675              </ul>
10676            </td>
10677
10678          </tr>
10679
10680
10681          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10682           <!-- end of entry -->
10683        
10684                
10685          <tr class="entry" id="static_android.sensor.forwardMatrix1">
10686            <td class="entry_name" rowspan="1">
10687              android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1
10688            </td>
10689            <td class="entry_type">
10690                <span class="entry_type_name">rational</span>
10691                <span class="entry_type_container">x</span>
10692
10693                <span class="entry_type_array">
10694                  9
10695                </span>
10696              <span class="entry_type_visibility"> [system]</span>
10697                <div class="entry_type_notes">3x3 matrix in row-major-order</div>
10698
10699
10700            </td> <!-- entry_type -->
10701
10702            <td class="entry_description">
10703              <p>Used by DNG for better WB
10704adaptation</p>
10705            </td>
10706
10707            <td class="entry_units">
10708            </td>
10709
10710            <td class="entry_range">
10711            </td>
10712
10713            <td class="entry_tags">
10714              <ul class="entry_tags">
10715                  <li><a href="#tag_DNG">DNG</a></li>
10716              </ul>
10717            </td>
10718
10719          </tr>
10720
10721
10722          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10723           <!-- end of entry -->
10724        
10725                
10726          <tr class="entry" id="static_android.sensor.forwardMatrix2">
10727            <td class="entry_name" rowspan="1">
10728              android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2
10729            </td>
10730            <td class="entry_type">
10731                <span class="entry_type_name">rational</span>
10732                <span class="entry_type_container">x</span>
10733
10734                <span class="entry_type_array">
10735                  9
10736                </span>
10737              <span class="entry_type_visibility"> [system]</span>
10738                <div class="entry_type_notes">3x3 matrix in row-major-order</div>
10739
10740
10741            </td> <!-- entry_type -->
10742
10743            <td class="entry_description">
10744              <p>Used by DNG for better WB
10745adaptation</p>
10746            </td>
10747
10748            <td class="entry_units">
10749            </td>
10750
10751            <td class="entry_range">
10752            </td>
10753
10754            <td class="entry_tags">
10755              <ul class="entry_tags">
10756                  <li><a href="#tag_DNG">DNG</a></li>
10757              </ul>
10758            </td>
10759
10760          </tr>
10761
10762
10763          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10764           <!-- end of entry -->
10765        
10766                
10767          <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
10768            <td class="entry_name" rowspan="3">
10769              android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity
10770            </td>
10771            <td class="entry_type">
10772                <span class="entry_type_name">int32</span>
10773
10774              <span class="entry_type_visibility"> [public]</span>
10775
10776
10777            </td> <!-- entry_type -->
10778
10779            <td class="entry_description">
10780              <p>Maximum sensitivity that is implemented
10781purely through analog gain</p>
10782            </td>
10783
10784            <td class="entry_units">
10785            </td>
10786
10787            <td class="entry_range">
10788            </td>
10789
10790            <td class="entry_tags">
10791              <ul class="entry_tags">
10792                  <li><a href="#tag_V1">V1</a></li>
10793                  <li><a href="#tag_FULL">FULL</a></li>
10794              </ul>
10795            </td>
10796
10797          </tr>
10798          <tr class="entries_header">
10799            <th class="th_details" colspan="5">Details</th>
10800          </tr>
10801          <tr class="entry_cont">
10802            <td class="entry_details" colspan="5">
10803              <p>For <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> values less than or
10804equal to this,<wbr/> all applied gain must be analog.<wbr/> For
10805values above this,<wbr/> it can be a mix of analog and
10806digital</p>
10807            </td>
10808          </tr>
10809
10810
10811          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10812           <!-- end of entry -->
10813        
10814                
10815          <tr class="entry" id="static_android.sensor.noiseModelCoefficients">
10816            <td class="entry_name" rowspan="3">
10817              android.<wbr/>sensor.<wbr/>noise<wbr/>Model<wbr/>Coefficients
10818            </td>
10819            <td class="entry_type">
10820                <span class="entry_type_name">float</span>
10821                <span class="entry_type_container">x</span>
10822
10823                <span class="entry_type_array">
10824                  2
10825                </span>
10826              <span class="entry_type_visibility"> [system]</span>
10827                <div class="entry_type_notes">float constants A,<wbr/> B for the noise variance model</div>
10828
10829
10830            </td> <!-- entry_type -->
10831
10832            <td class="entry_description">
10833              <p>Estimation of sensor noise
10834characteristics</p>
10835            </td>
10836
10837            <td class="entry_units">
10838              var(raw pixel value) = electrons * (baseGainFactor
10839          * iso/<wbr/>100)^2 + A * (baseGainFactor * iso/<wbr/>100)^2 +
10840          B
10841            </td>
10842
10843            <td class="entry_range">
10844            </td>
10845
10846            <td class="entry_tags">
10847              <ul class="entry_tags">
10848                  <li><a href="#tag_V1">V1</a></li>
10849              </ul>
10850            </td>
10851
10852          </tr>
10853          <tr class="entries_header">
10854            <th class="th_details" colspan="5">Details</th>
10855          </tr>
10856          <tr class="entry_cont">
10857            <td class="entry_details" colspan="5">
10858              <p>A represents sensor read noise before analog
10859amplification; B represents noise from A/<wbr/>D conversion and
10860other circuits after amplification.<wbr/> Both noise sources
10861are assumed to be gaussian,<wbr/> independent,<wbr/> and not to vary
10862across the sensor</p>
10863            </td>
10864          </tr>
10865
10866
10867          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10868           <!-- end of entry -->
10869        
10870                
10871          <tr class="entry" id="static_android.sensor.orientation">
10872            <td class="entry_name" rowspan="1">
10873              android.<wbr/>sensor.<wbr/>orientation
10874            </td>
10875            <td class="entry_type">
10876                <span class="entry_type_name">int32</span>
10877
10878              <span class="entry_type_visibility"> [public]</span>
10879
10880
10881            </td> <!-- entry_type -->
10882
10883            <td class="entry_description">
10884              <p>Clockwise angle through which the output
10885image needs to be rotated to be upright on the device
10886screen in its native orientation.<wbr/> Also defines the
10887direction of rolling shutter readout,<wbr/> which is from top
10888to bottom in the sensor's coordinate system</p>
10889            </td>
10890
10891            <td class="entry_units">
10892              degrees clockwise rotation,<wbr/> only multiples of
10893          90
10894            </td>
10895
10896            <td class="entry_range">
10897              <p>0,<wbr/>90,<wbr/>180,<wbr/>270</p>
10898            </td>
10899
10900            <td class="entry_tags">
10901              <ul class="entry_tags">
10902                  <li><a href="#tag_BC">BC</a></li>
10903              </ul>
10904            </td>
10905
10906          </tr>
10907
10908
10909          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10910           <!-- end of entry -->
10911        
10912                
10913          <tr class="entry" id="static_android.sensor.referenceIlluminant1">
10914            <td class="entry_name" rowspan="3">
10915              android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1
10916            </td>
10917            <td class="entry_type">
10918                <span class="entry_type_name entry_type_name_enum">byte</span>
10919
10920              <span class="entry_type_visibility"> [system]</span>
10921
10922                <ul class="entry_type_enum">
10923                  <li>
10924                    <span class="entry_type_enum_name">DAYLIGHT</span>
10925                    <span class="entry_type_enum_value">1</span>
10926                  </li>
10927                  <li>
10928                    <span class="entry_type_enum_name">FLUORESCENT</span>
10929                    <span class="entry_type_enum_value">2</span>
10930                  </li>
10931                  <li>
10932                    <span class="entry_type_enum_name">TUNGSTEN</span>
10933                    <span class="entry_type_enum_value">3</span>
10934                    <span class="entry_type_enum_notes"><p>Incandescent light</p></span>
10935                  </li>
10936                  <li>
10937                    <span class="entry_type_enum_name">FLASH</span>
10938                    <span class="entry_type_enum_value">4</span>
10939                  </li>
10940                  <li>
10941                    <span class="entry_type_enum_name">FINE_WEATHER</span>
10942                    <span class="entry_type_enum_value">9</span>
10943                  </li>
10944                  <li>
10945                    <span class="entry_type_enum_name">CLOUDY_WEATHER</span>
10946                    <span class="entry_type_enum_value">10</span>
10947                  </li>
10948                  <li>
10949                    <span class="entry_type_enum_name">SHADE</span>
10950                    <span class="entry_type_enum_value">11</span>
10951                  </li>
10952                  <li>
10953                    <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span>
10954                    <span class="entry_type_enum_value">12</span>
10955                    <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
10956                  </li>
10957                  <li>
10958                    <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span>
10959                    <span class="entry_type_enum_value">13</span>
10960                    <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
10961                  </li>
10962                  <li>
10963                    <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span>
10964                    <span class="entry_type_enum_value">14</span>
10965                    <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
10966                  </li>
10967                  <li>
10968                    <span class="entry_type_enum_name">WHITE_FLUORESCENT</span>
10969                    <span class="entry_type_enum_value">15</span>
10970                    <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
10971                  </li>
10972                  <li>
10973                    <span class="entry_type_enum_name">STANDARD_A</span>
10974                    <span class="entry_type_enum_value">17</span>
10975                  </li>
10976                  <li>
10977                    <span class="entry_type_enum_name">STANDARD_B</span>
10978                    <span class="entry_type_enum_value">18</span>
10979                  </li>
10980                  <li>
10981                    <span class="entry_type_enum_name">STANDARD_C</span>
10982                    <span class="entry_type_enum_value">19</span>
10983                  </li>
10984                  <li>
10985                    <span class="entry_type_enum_name">D55</span>
10986                    <span class="entry_type_enum_value">20</span>
10987                  </li>
10988                  <li>
10989                    <span class="entry_type_enum_name">D65</span>
10990                    <span class="entry_type_enum_value">21</span>
10991                  </li>
10992                  <li>
10993                    <span class="entry_type_enum_name">D75</span>
10994                    <span class="entry_type_enum_value">22</span>
10995                  </li>
10996                  <li>
10997                    <span class="entry_type_enum_name">D50</span>
10998                    <span class="entry_type_enum_value">23</span>
10999                  </li>
11000                  <li>
11001                    <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span>
11002                    <span class="entry_type_enum_value">24</span>
11003                  </li>
11004                </ul>
11005
11006            </td> <!-- entry_type -->
11007
11008            <td class="entry_description">
11009              <p>Light source used to define transform
110101</p>
11011            </td>
11012
11013            <td class="entry_units">
11014            </td>
11015
11016            <td class="entry_range">
11017            </td>
11018
11019            <td class="entry_tags">
11020              <ul class="entry_tags">
11021                  <li><a href="#tag_DNG">DNG</a></li>
11022                  <li><a href="#tag_EXIF">EXIF</a></li>
11023              </ul>
11024            </td>
11025
11026          </tr>
11027          <tr class="entries_header">
11028            <th class="th_details" colspan="5">Details</th>
11029          </tr>
11030          <tr class="entry_cont">
11031            <td class="entry_details" colspan="5">
11032              <p>[EXIF LightSource tag] Must all these be
11033supported? Need CCT for each!</p>
11034            </td>
11035          </tr>
11036
11037
11038          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11039           <!-- end of entry -->
11040        
11041                
11042          <tr class="entry" id="static_android.sensor.referenceIlluminant2">
11043            <td class="entry_name" rowspan="1">
11044              android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2
11045            </td>
11046            <td class="entry_type">
11047                <span class="entry_type_name">byte</span>
11048
11049              <span class="entry_type_visibility"> [system]</span>
11050
11051
11052            </td> <!-- entry_type -->
11053
11054            <td class="entry_description">
11055              <p>Light source used to define transform
110562</p>
11057            </td>
11058
11059            <td class="entry_units">
11060              Same as illuminant 1
11061            </td>
11062
11063            <td class="entry_range">
11064            </td>
11065
11066            <td class="entry_tags">
11067            </td>
11068
11069          </tr>
11070
11071
11072          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11073           <!-- end of entry -->
11074        
11075        
11076
11077      <!-- end of kind -->
11078      </tbody>
11079      <tr><td colspan="6" class="kind">dynamic</td></tr>
11080
11081      <thead class="entries_header">
11082        <tr>
11083          <th class="th_name">Property Name</th>
11084          <th class="th_type">Type</th>
11085          <th class="th_description">Description</th>
11086          <th class="th_units">Units</th>
11087          <th class="th_range">Range</th>
11088          <th class="th_tags">Tags</th>
11089        </tr>
11090      </thead>
11091
11092      <tbody>
11093
11094        
11095
11096        
11097
11098        
11099
11100        
11101
11102                
11103          <tr class="entry" id="dynamic_android.sensor.exposureTime">
11104            <td class="entry_name" rowspan="3">
11105              android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
11106            </td>
11107            <td class="entry_type">
11108                <span class="entry_type_name">int64</span>
11109
11110              <span class="entry_type_visibility"> [public]</span>
11111
11112
11113            </td> <!-- entry_type -->
11114
11115            <td class="entry_description">
11116              <p>Duration each pixel is exposed to
11117light.<wbr/></p>
11118<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
11119duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
11120            </td>
11121
11122            <td class="entry_units">
11123              nanoseconds
11124            </td>
11125
11126            <td class="entry_range">
11127              <p><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></p>
11128            </td>
11129
11130            <td class="entry_tags">
11131              <ul class="entry_tags">
11132                  <li><a href="#tag_V1">V1</a></li>
11133              </ul>
11134            </td>
11135
11136          </tr>
11137          <tr class="entries_header">
11138            <th class="th_details" colspan="5">Details</th>
11139          </tr>
11140          <tr class="entry_cont">
11141            <td class="entry_details" colspan="5">
11142              <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
11143            </td>
11144          </tr>
11145
11146
11147          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11148           <!-- end of entry -->
11149        
11150                
11151          <tr class="entry" id="dynamic_android.sensor.frameDuration">
11152            <td class="entry_name" rowspan="3">
11153              android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
11154            </td>
11155            <td class="entry_type">
11156                <span class="entry_type_name">int64</span>
11157
11158              <span class="entry_type_visibility"> [public]</span>
11159
11160
11161            </td> <!-- entry_type -->
11162
11163            <td class="entry_description">
11164              <p>Duration from start of frame exposure to
11165start of next frame exposure</p>
11166            </td>
11167
11168            <td class="entry_units">
11169              nanoseconds
11170            </td>
11171
11172            <td class="entry_range">
11173              <p>see <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
11174android.<wbr/>scaler.<wbr/>info.<wbr/>available<wbr/>Min<wbr/>Frame<wbr/>Durations</p>
11175            </td>
11176
11177            <td class="entry_tags">
11178              <ul class="entry_tags">
11179                  <li><a href="#tag_V1">V1</a></li>
11180                  <li><a href="#tag_BC">BC</a></li>
11181              </ul>
11182            </td>
11183
11184          </tr>
11185          <tr class="entries_header">
11186            <th class="th_details" colspan="5">Details</th>
11187          </tr>
11188          <tr class="entry_cont">
11189            <td class="entry_details" colspan="5">
11190              <p>Exposure time has priority,<wbr/> so duration is set to
11191max(duration,<wbr/> exposure time + overhead)</p>
11192            </td>
11193          </tr>
11194
11195
11196          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11197           <!-- end of entry -->
11198        
11199                
11200          <tr class="entry" id="dynamic_android.sensor.sensitivity">
11201            <td class="entry_name" rowspan="3">
11202              android.<wbr/>sensor.<wbr/>sensitivity
11203            </td>
11204            <td class="entry_type">
11205                <span class="entry_type_name">int32</span>
11206
11207              <span class="entry_type_visibility"> [public]</span>
11208
11209
11210            </td> <!-- entry_type -->
11211
11212            <td class="entry_description">
11213              <p>Gain applied to image data.<wbr/> Must be
11214implemented through analog gain only if set to values
11215below 'maximum analog sensitivity'.<wbr/></p>
11216<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
11217gain to the nearest possible value (rather than gain more).<wbr/></p>
11218            </td>
11219
11220            <td class="entry_units">
11221              ISO arithmetic units
11222            </td>
11223
11224            <td class="entry_range">
11225              <p><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></p>
11226            </td>
11227
11228            <td class="entry_tags">
11229              <ul class="entry_tags">
11230                  <li><a href="#tag_V1">V1</a></li>
11231              </ul>
11232            </td>
11233
11234          </tr>
11235          <tr class="entries_header">
11236            <th class="th_details" colspan="5">Details</th>
11237          </tr>
11238          <tr class="entry_cont">
11239            <td class="entry_details" colspan="5">
11240              <p>ISO 12232:2006 REI method</p>
11241            </td>
11242          </tr>
11243
11244
11245          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11246           <!-- end of entry -->
11247        
11248                
11249          <tr class="entry" id="dynamic_android.sensor.timestamp">
11250            <td class="entry_name" rowspan="3">
11251              android.<wbr/>sensor.<wbr/>timestamp
11252            </td>
11253            <td class="entry_type">
11254                <span class="entry_type_name">int64</span>
11255
11256              <span class="entry_type_visibility"> [public]</span>
11257
11258
11259            </td> <!-- entry_type -->
11260
11261            <td class="entry_description">
11262              <p>Time at start of exposure of first
11263row</p>
11264            </td>
11265
11266            <td class="entry_units">
11267              nanoseconds
11268            </td>
11269
11270            <td class="entry_range">
11271              <p>&gt; 0</p>
11272            </td>
11273
11274            <td class="entry_tags">
11275              <ul class="entry_tags">
11276                  <li><a href="#tag_BC">BC</a></li>
11277              </ul>
11278            </td>
11279
11280          </tr>
11281          <tr class="entries_header">
11282            <th class="th_details" colspan="5">Details</th>
11283          </tr>
11284          <tr class="entry_cont">
11285            <td class="entry_details" colspan="5">
11286              <p>Monotonic,<wbr/> should be synced to other timestamps in
11287system</p>
11288            </td>
11289          </tr>
11290
11291
11292          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11293           <!-- end of entry -->
11294        
11295                
11296          <tr class="entry" id="dynamic_android.sensor.temperature">
11297            <td class="entry_name" rowspan="1">
11298              android.<wbr/>sensor.<wbr/>temperature
11299            </td>
11300            <td class="entry_type">
11301                <span class="entry_type_name">float</span>
11302
11303              <span class="entry_type_visibility"> [public]</span>
11304
11305
11306            </td> <!-- entry_type -->
11307
11308            <td class="entry_description">
11309              <p>The temperature of the sensor,<wbr/> sampled at the time
11310exposure began for this frame.<wbr/></p>
11311<p>The thermal diode being queried should be inside the sensor PCB,<wbr/> or
11312somewhere close to it.<wbr/></p>
11313            </td>
11314
11315            <td class="entry_units">
11316              celsius
11317            </td>
11318
11319            <td class="entry_range">
11320              <p>Optional.<wbr/> This value is missing if no temperature is available.<wbr/></p>
11321            </td>
11322
11323            <td class="entry_tags">
11324              <ul class="entry_tags">
11325                  <li><a href="#tag_FULL">FULL</a></li>
11326              </ul>
11327            </td>
11328
11329          </tr>
11330
11331
11332          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11333           <!-- end of entry -->
11334        
11335        
11336
11337      <!-- end of kind -->
11338      </tbody>
11339
11340  <!-- end of section -->
11341  <tr><td colspan="6" id="section_shading" class="section">shading</td></tr>
11342
11343
11344      <tr><td colspan="6" class="kind">controls</td></tr>
11345
11346      <thead class="entries_header">
11347        <tr>
11348          <th class="th_name">Property Name</th>
11349          <th class="th_type">Type</th>
11350          <th class="th_description">Description</th>
11351          <th class="th_units">Units</th>
11352          <th class="th_range">Range</th>
11353          <th class="th_tags">Tags</th>
11354        </tr>
11355      </thead>
11356
11357      <tbody>
11358
11359        
11360
11361        
11362
11363        
11364
11365        
11366
11367                
11368          <tr class="entry" id="controls_android.shading.mode">
11369            <td class="entry_name" rowspan="1">
11370              android.<wbr/>shading.<wbr/>mode
11371            </td>
11372            <td class="entry_type">
11373                <span class="entry_type_name entry_type_name_enum">byte</span>
11374
11375              <span class="entry_type_visibility"> [system]</span>
11376
11377                <ul class="entry_type_enum">
11378                  <li>
11379                    <span class="entry_type_enum_name">OFF</span>
11380                    <span class="entry_type_enum_notes"><p>No shading correction is applied</p></span>
11381                  </li>
11382                  <li>
11383                    <span class="entry_type_enum_name">FAST</span>
11384                    <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw
11385bayer output</p></span>
11386                  </li>
11387                  <li>
11388                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
11389                    <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
11390quality</p></span>
11391                  </li>
11392                </ul>
11393
11394            </td> <!-- entry_type -->
11395
11396            <td class="entry_description">
11397              <p>Quality of lens shading correction applied
11398to the image data</p>
11399            </td>
11400
11401            <td class="entry_units">
11402            </td>
11403
11404            <td class="entry_range">
11405            </td>
11406
11407            <td class="entry_tags">
11408            </td>
11409
11410          </tr>
11411
11412
11413          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11414           <!-- end of entry -->
11415        
11416                
11417          <tr class="entry" id="controls_android.shading.strength">
11418            <td class="entry_name" rowspan="1">
11419              android.<wbr/>shading.<wbr/>strength
11420            </td>
11421            <td class="entry_type">
11422                <span class="entry_type_name">byte</span>
11423
11424              <span class="entry_type_visibility"> [system]</span>
11425
11426
11427            </td> <!-- entry_type -->
11428
11429            <td class="entry_description">
11430              <p>Control the amount of shading correction
11431applied to the images</p>
11432            </td>
11433
11434            <td class="entry_units">
11435              unitless: 1-10; 10 is full shading
11436          compensation
11437            </td>
11438
11439            <td class="entry_range">
11440            </td>
11441
11442            <td class="entry_tags">
11443              <ul class="entry_tags">
11444                  <li><a href="#tag_ADV">ADV</a></li>
11445              </ul>
11446            </td>
11447
11448          </tr>
11449
11450
11451          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11452           <!-- end of entry -->
11453        
11454        
11455
11456      <!-- end of kind -->
11457      </tbody>
11458      <tr><td colspan="6" class="kind">dynamic</td></tr>
11459
11460      <thead class="entries_header">
11461        <tr>
11462          <th class="th_name">Property Name</th>
11463          <th class="th_type">Type</th>
11464          <th class="th_description">Description</th>
11465          <th class="th_units">Units</th>
11466          <th class="th_range">Range</th>
11467          <th class="th_tags">Tags</th>
11468        </tr>
11469      </thead>
11470
11471      <tbody>
11472
11473        
11474
11475        
11476
11477        
11478
11479        
11480
11481                
11482          <tr class="entry" id="dynamic_android.shading.mode">
11483            <td class="entry_name" rowspan="1">
11484              android.<wbr/>shading.<wbr/>mode
11485            </td>
11486            <td class="entry_type">
11487                <span class="entry_type_name entry_type_name_enum">byte</span>
11488
11489              <span class="entry_type_visibility"> [system]</span>
11490
11491                <ul class="entry_type_enum">
11492                  <li>
11493                    <span class="entry_type_enum_name">OFF</span>
11494                    <span class="entry_type_enum_notes"><p>No shading correction is applied</p></span>
11495                  </li>
11496                  <li>
11497                    <span class="entry_type_enum_name">FAST</span>
11498                    <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw
11499bayer output</p></span>
11500                  </li>
11501                  <li>
11502                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
11503                    <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
11504quality</p></span>
11505                  </li>
11506                </ul>
11507
11508            </td> <!-- entry_type -->
11509
11510            <td class="entry_description">
11511              <p>Quality of lens shading correction applied
11512to the image data</p>
11513            </td>
11514
11515            <td class="entry_units">
11516            </td>
11517
11518            <td class="entry_range">
11519            </td>
11520
11521            <td class="entry_tags">
11522            </td>
11523
11524          </tr>
11525
11526
11527          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11528           <!-- end of entry -->
11529        
11530        
11531
11532      <!-- end of kind -->
11533      </tbody>
11534
11535  <!-- end of section -->
11536  <tr><td colspan="6" id="section_statistics" class="section">statistics</td></tr>
11537
11538
11539      <tr><td colspan="6" class="kind">controls</td></tr>
11540
11541      <thead class="entries_header">
11542        <tr>
11543          <th class="th_name">Property Name</th>
11544          <th class="th_type">Type</th>
11545          <th class="th_description">Description</th>
11546          <th class="th_units">Units</th>
11547          <th class="th_range">Range</th>
11548          <th class="th_tags">Tags</th>
11549        </tr>
11550      </thead>
11551
11552      <tbody>
11553
11554        
11555
11556        
11557
11558        
11559
11560        
11561
11562                
11563          <tr class="entry" id="controls_android.statistics.faceDetectMode">
11564            <td class="entry_name" rowspan="3">
11565              android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
11566            </td>
11567            <td class="entry_type">
11568                <span class="entry_type_name entry_type_name_enum">byte</span>
11569
11570              <span class="entry_type_visibility"> [public]</span>
11571
11572                <ul class="entry_type_enum">
11573                  <li>
11574                    <span class="entry_type_enum_name">OFF</span>
11575                  </li>
11576                  <li>
11577                    <span class="entry_type_enum_name">SIMPLE</span>
11578                    <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
11579only</p></span>
11580                  </li>
11581                  <li>
11582                    <span class="entry_type_enum_name">FULL</span>
11583                    <span class="entry_type_enum_notes"><p>Optional Return all face
11584metadata</p></span>
11585                  </li>
11586                </ul>
11587
11588            </td> <!-- entry_type -->
11589
11590            <td class="entry_description">
11591              <p>State of the face detector
11592unit</p>
11593            </td>
11594
11595            <td class="entry_units">
11596            </td>
11597
11598            <td class="entry_range">
11599              <p><a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a></p>
11600            </td>
11601
11602            <td class="entry_tags">
11603              <ul class="entry_tags">
11604                  <li><a href="#tag_BC">BC</a></li>
11605              </ul>
11606            </td>
11607
11608          </tr>
11609          <tr class="entries_header">
11610            <th class="th_details" colspan="5">Details</th>
11611          </tr>
11612          <tr class="entry_cont">
11613            <td class="entry_details" colspan="5">
11614              <p>Whether face detection is enabled,<wbr/> and whether it
11615should output just the basic fields or the full set of
11616fields.<wbr/> Value must be one of the
11617<a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a>.<wbr/></p>
11618            </td>
11619          </tr>
11620
11621
11622          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11623           <!-- end of entry -->
11624        
11625                
11626          <tr class="entry" id="controls_android.statistics.histogramMode">
11627            <td class="entry_name" rowspan="1">
11628              android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
11629            </td>
11630            <td class="entry_type">
11631                <span class="entry_type_name entry_type_name_enum">byte</span>
11632
11633              <span class="entry_type_visibility"> [system as boolean]</span>
11634
11635                <ul class="entry_type_enum">
11636                  <li>
11637                    <span class="entry_type_enum_name">OFF</span>
11638                  </li>
11639                  <li>
11640                    <span class="entry_type_enum_name">ON</span>
11641                  </li>
11642                </ul>
11643
11644            </td> <!-- entry_type -->
11645
11646            <td class="entry_description">
11647              <p>Operating mode for histogram
11648generation</p>
11649            </td>
11650
11651            <td class="entry_units">
11652            </td>
11653
11654            <td class="entry_range">
11655            </td>
11656
11657            <td class="entry_tags">
11658              <ul class="entry_tags">
11659                  <li><a href="#tag_V1">V1</a></li>
11660              </ul>
11661            </td>
11662
11663          </tr>
11664
11665
11666          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11667           <!-- end of entry -->
11668        
11669                
11670          <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
11671            <td class="entry_name" rowspan="1">
11672              android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
11673            </td>
11674            <td class="entry_type">
11675                <span class="entry_type_name entry_type_name_enum">byte</span>
11676
11677              <span class="entry_type_visibility"> [system as boolean]</span>
11678
11679                <ul class="entry_type_enum">
11680                  <li>
11681                    <span class="entry_type_enum_name">OFF</span>
11682                  </li>
11683                  <li>
11684                    <span class="entry_type_enum_name">ON</span>
11685                  </li>
11686                </ul>
11687
11688            </td> <!-- entry_type -->
11689
11690            <td class="entry_description">
11691              <p>Operating mode for sharpness map
11692generation</p>
11693            </td>
11694
11695            <td class="entry_units">
11696            </td>
11697
11698            <td class="entry_range">
11699            </td>
11700
11701            <td class="entry_tags">
11702              <ul class="entry_tags">
11703                  <li><a href="#tag_V1">V1</a></li>
11704              </ul>
11705            </td>
11706
11707          </tr>
11708
11709
11710          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11711           <!-- end of entry -->
11712        
11713                
11714          <tr class="entry" id="controls_android.statistics.lensShadingMapMode">
11715            <td class="entry_name" rowspan="3">
11716              android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
11717            </td>
11718            <td class="entry_type">
11719                <span class="entry_type_name entry_type_name_enum">byte</span>
11720
11721              <span class="entry_type_visibility"> [public]</span>
11722
11723                <ul class="entry_type_enum">
11724                  <li>
11725                    <span class="entry_type_enum_name">OFF</span>
11726                  </li>
11727                  <li>
11728                    <span class="entry_type_enum_name">ON</span>
11729                  </li>
11730                </ul>
11731
11732            </td> <!-- entry_type -->
11733
11734            <td class="entry_description">
11735              <p>Whether the HAL needs to output the lens
11736shading map in output result metadata</p>
11737            </td>
11738
11739            <td class="entry_units">
11740            </td>
11741
11742            <td class="entry_range">
11743            </td>
11744
11745            <td class="entry_tags">
11746            </td>
11747
11748          </tr>
11749          <tr class="entries_header">
11750            <th class="th_details" colspan="5">Details</th>
11751          </tr>
11752          <tr class="entry_cont">
11753            <td class="entry_details" colspan="5">
11754              <p>When set to ON,<wbr/>
11755<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> must be provided in
11756the output result metadata.<wbr/></p>
11757            </td>
11758          </tr>
11759
11760
11761          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11762           <!-- end of entry -->
11763        
11764        
11765
11766      <!-- end of kind -->
11767      </tbody>
11768      <tr><td colspan="6" class="kind">static</td></tr>
11769
11770      <thead class="entries_header">
11771        <tr>
11772          <th class="th_name">Property Name</th>
11773          <th class="th_type">Type</th>
11774          <th class="th_description">Description</th>
11775          <th class="th_units">Units</th>
11776          <th class="th_range">Range</th>
11777          <th class="th_tags">Tags</th>
11778        </tr>
11779      </thead>
11780
11781      <tbody>
11782
11783        
11784
11785        
11786
11787        
11788
11789        
11790                
11791            
11792
11793                
11794          <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
11795            <td class="entry_name" rowspan="3">
11796              android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes
11797            </td>
11798            <td class="entry_type">
11799                <span class="entry_type_name">byte</span>
11800                <span class="entry_type_container">x</span>
11801
11802                <span class="entry_type_array">
11803                  n
11804                </span>
11805              <span class="entry_type_visibility"> [public]</span>
11806                <div class="entry_type_notes">List of enums from android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</div>
11807
11808
11809            </td> <!-- entry_type -->
11810
11811            <td class="entry_description">
11812              <p>Which face detection modes are available,<wbr/>
11813if any</p>
11814            </td>
11815
11816            <td class="entry_units">
11817              List of enum:
11818            OFF
11819            SIMPLE
11820            FULL
11821            </td>
11822
11823            <td class="entry_range">
11824            </td>
11825
11826            <td class="entry_tags">
11827            </td>
11828
11829          </tr>
11830          <tr class="entries_header">
11831            <th class="th_details" colspan="5">Details</th>
11832          </tr>
11833          <tr class="entry_cont">
11834            <td class="entry_details" colspan="5">
11835              <p>OFF means face detection is disabled,<wbr/> it must
11836be included in the list.<wbr/></p>
11837<p>SIMPLE means the device supports the
11838<a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
11839<a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a> outputs.<wbr/></p>
11840<p>FULL means the device additionally supports the
11841<a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a> and
11842<a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a> outputs.<wbr/></p>
11843            </td>
11844          </tr>
11845
11846
11847          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11848           <!-- end of entry -->
11849        
11850                
11851          <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
11852            <td class="entry_name" rowspan="1">
11853              android.<wbr/>statistics.<wbr/>info.<wbr/>histogram<wbr/>Bucket<wbr/>Count
11854            </td>
11855            <td class="entry_type">
11856                <span class="entry_type_name">int32</span>
11857
11858              <span class="entry_type_visibility"> [system]</span>
11859
11860
11861            </td> <!-- entry_type -->
11862
11863            <td class="entry_description">
11864              <p>Number of histogram buckets
11865supported</p>
11866            </td>
11867
11868            <td class="entry_units">
11869            </td>
11870
11871            <td class="entry_range">
11872              <p>&gt;= 64</p>
11873            </td>
11874
11875            <td class="entry_tags">
11876            </td>
11877
11878          </tr>
11879
11880
11881          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11882           <!-- end of entry -->
11883        
11884                
11885          <tr class="entry" id="static_android.statistics.info.maxFaceCount">
11886            <td class="entry_name" rowspan="1">
11887              android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count
11888            </td>
11889            <td class="entry_type">
11890                <span class="entry_type_name">int32</span>
11891
11892              <span class="entry_type_visibility"> [public]</span>
11893
11894
11895            </td> <!-- entry_type -->
11896
11897            <td class="entry_description">
11898              <p>Maximum number of simultaneously detectable
11899faces</p>
11900            </td>
11901
11902            <td class="entry_units">
11903            </td>
11904
11905            <td class="entry_range">
11906              <p>&gt;= 4 if availableFaceDetectionModes lists
11907modes besides OFF,<wbr/> otherwise 0</p>
11908            </td>
11909
11910            <td class="entry_tags">
11911            </td>
11912
11913          </tr>
11914
11915
11916          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11917           <!-- end of entry -->
11918        
11919                
11920          <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
11921            <td class="entry_name" rowspan="1">
11922              android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Histogram<wbr/>Count
11923            </td>
11924            <td class="entry_type">
11925                <span class="entry_type_name">int32</span>
11926
11927              <span class="entry_type_visibility"> [system]</span>
11928
11929
11930            </td> <!-- entry_type -->
11931
11932            <td class="entry_description">
11933              <p>Maximum value possible for a histogram
11934bucket</p>
11935            </td>
11936
11937            <td class="entry_units">
11938            </td>
11939
11940            <td class="entry_range">
11941            </td>
11942
11943            <td class="entry_tags">
11944            </td>
11945
11946          </tr>
11947
11948
11949          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11950           <!-- end of entry -->
11951        
11952                
11953          <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
11954            <td class="entry_name" rowspan="1">
11955              android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Sharpness<wbr/>Map<wbr/>Value
11956            </td>
11957            <td class="entry_type">
11958                <span class="entry_type_name">int32</span>
11959
11960              <span class="entry_type_visibility"> [system]</span>
11961
11962
11963            </td> <!-- entry_type -->
11964
11965            <td class="entry_description">
11966              <p>Maximum value possible for a sharpness map
11967region.<wbr/></p>
11968            </td>
11969
11970            <td class="entry_units">
11971            </td>
11972
11973            <td class="entry_range">
11974            </td>
11975
11976            <td class="entry_tags">
11977            </td>
11978
11979          </tr>
11980
11981
11982          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11983           <!-- end of entry -->
11984        
11985                
11986          <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
11987            <td class="entry_name" rowspan="1">
11988              android.<wbr/>statistics.<wbr/>info.<wbr/>sharpness<wbr/>Map<wbr/>Size
11989            </td>
11990            <td class="entry_type">
11991                <span class="entry_type_name">int32</span>
11992                <span class="entry_type_container">x</span>
11993
11994                <span class="entry_type_array">
11995                  2
11996                </span>
11997              <span class="entry_type_visibility"> [system as size]</span>
11998                <div class="entry_type_notes">width x height</div>
11999
12000
12001            </td> <!-- entry_type -->
12002
12003            <td class="entry_description">
12004              <p>Dimensions of the sharpness
12005map</p>
12006            </td>
12007
12008            <td class="entry_units">
12009            </td>
12010
12011            <td class="entry_range">
12012              <p>Must be at least 32 x 32</p>
12013            </td>
12014
12015            <td class="entry_tags">
12016            </td>
12017
12018          </tr>
12019
12020
12021          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12022           <!-- end of entry -->
12023        
12024        
12025        
12026
12027        
12028
12029      <!-- end of kind -->
12030      </tbody>
12031      <tr><td colspan="6" class="kind">dynamic</td></tr>
12032
12033      <thead class="entries_header">
12034        <tr>
12035          <th class="th_name">Property Name</th>
12036          <th class="th_type">Type</th>
12037          <th class="th_description">Description</th>
12038          <th class="th_units">Units</th>
12039          <th class="th_range">Range</th>
12040          <th class="th_tags">Tags</th>
12041        </tr>
12042      </thead>
12043
12044      <tbody>
12045
12046        
12047
12048        
12049
12050        
12051
12052        
12053
12054                
12055          <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
12056            <td class="entry_name" rowspan="3">
12057              android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
12058            </td>
12059            <td class="entry_type">
12060                <span class="entry_type_name entry_type_name_enum">byte</span>
12061
12062              <span class="entry_type_visibility"> [public]</span>
12063
12064                <ul class="entry_type_enum">
12065                  <li>
12066                    <span class="entry_type_enum_name">OFF</span>
12067                  </li>
12068                  <li>
12069                    <span class="entry_type_enum_name">SIMPLE</span>
12070                    <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
12071only</p></span>
12072                  </li>
12073                  <li>
12074                    <span class="entry_type_enum_name">FULL</span>
12075                    <span class="entry_type_enum_notes"><p>Optional Return all face
12076metadata</p></span>
12077                  </li>
12078                </ul>
12079
12080            </td> <!-- entry_type -->
12081
12082            <td class="entry_description">
12083              <p>State of the face detector
12084unit</p>
12085            </td>
12086
12087            <td class="entry_units">
12088            </td>
12089
12090            <td class="entry_range">
12091              <p><a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a></p>
12092            </td>
12093
12094            <td class="entry_tags">
12095              <ul class="entry_tags">
12096                  <li><a href="#tag_BC">BC</a></li>
12097              </ul>
12098            </td>
12099
12100          </tr>
12101          <tr class="entries_header">
12102            <th class="th_details" colspan="5">Details</th>
12103          </tr>
12104          <tr class="entry_cont">
12105            <td class="entry_details" colspan="5">
12106              <p>Whether face detection is enabled,<wbr/> and whether it
12107should output just the basic fields or the full set of
12108fields.<wbr/> Value must be one of the
12109<a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a>.<wbr/></p>
12110            </td>
12111          </tr>
12112
12113
12114          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12115           <!-- end of entry -->
12116        
12117                
12118          <tr class="entry" id="dynamic_android.statistics.faceIds">
12119            <td class="entry_name" rowspan="3">
12120              android.<wbr/>statistics.<wbr/>face<wbr/>Ids
12121            </td>
12122            <td class="entry_type">
12123                <span class="entry_type_name">int32</span>
12124                <span class="entry_type_container">x</span>
12125
12126                <span class="entry_type_array">
12127                  n
12128                </span>
12129              <span class="entry_type_visibility"> [hidden]</span>
12130
12131
12132            </td> <!-- entry_type -->
12133
12134            <td class="entry_description">
12135              <p>List of unique IDs for detected
12136faces</p>
12137            </td>
12138
12139            <td class="entry_units">
12140            </td>
12141
12142            <td class="entry_range">
12143            </td>
12144
12145            <td class="entry_tags">
12146              <ul class="entry_tags">
12147                  <li><a href="#tag_BC">BC</a></li>
12148              </ul>
12149            </td>
12150
12151          </tr>
12152          <tr class="entries_header">
12153            <th class="th_details" colspan="5">Details</th>
12154          </tr>
12155          <tr class="entry_cont">
12156            <td class="entry_details" colspan="5">
12157              <p>Only available if faceDetectMode == FULL</p>
12158            </td>
12159          </tr>
12160
12161
12162          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12163           <!-- end of entry -->
12164        
12165                
12166          <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
12167            <td class="entry_name" rowspan="3">
12168              android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks
12169            </td>
12170            <td class="entry_type">
12171                <span class="entry_type_name">int32</span>
12172                <span class="entry_type_container">x</span>
12173
12174                <span class="entry_type_array">
12175                  n x 6
12176                </span>
12177              <span class="entry_type_visibility"> [hidden]</span>
12178                <div class="entry_type_notes">(leftEyeX,<wbr/> leftEyeY,<wbr/> rightEyeX,<wbr/> rightEyeY,<wbr/> mouthX,<wbr/> mouthY)</div>
12179
12180
12181            </td> <!-- entry_type -->
12182
12183            <td class="entry_description">
12184              <p>List of landmarks for detected
12185faces</p>
12186            </td>
12187
12188            <td class="entry_units">
12189            </td>
12190
12191            <td class="entry_range">
12192            </td>
12193
12194            <td class="entry_tags">
12195              <ul class="entry_tags">
12196                  <li><a href="#tag_BC">BC</a></li>
12197              </ul>
12198            </td>
12199
12200          </tr>
12201          <tr class="entries_header">
12202            <th class="th_details" colspan="5">Details</th>
12203          </tr>
12204          <tr class="entry_cont">
12205            <td class="entry_details" colspan="5">
12206              <p>Only available if faceDetectMode == FULL</p>
12207            </td>
12208          </tr>
12209
12210
12211          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12212           <!-- end of entry -->
12213        
12214                
12215          <tr class="entry" id="dynamic_android.statistics.faceRectangles">
12216            <td class="entry_name" rowspan="3">
12217              android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles
12218            </td>
12219            <td class="entry_type">
12220                <span class="entry_type_name">int32</span>
12221                <span class="entry_type_container">x</span>
12222
12223                <span class="entry_type_array">
12224                  n x 4
12225                </span>
12226              <span class="entry_type_visibility"> [hidden as rectangle]</span>
12227                <div class="entry_type_notes">(xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax).<wbr/> (0,<wbr/>0) is top-left of active pixel area</div>
12228
12229
12230            </td> <!-- entry_type -->
12231
12232            <td class="entry_description">
12233              <p>List of the bounding rectangles for detected
12234faces</p>
12235            </td>
12236
12237            <td class="entry_units">
12238            </td>
12239
12240            <td class="entry_range">
12241            </td>
12242
12243            <td class="entry_tags">
12244              <ul class="entry_tags">
12245                  <li><a href="#tag_BC">BC</a></li>
12246              </ul>
12247            </td>
12248
12249          </tr>
12250          <tr class="entries_header">
12251            <th class="th_details" colspan="5">Details</th>
12252          </tr>
12253          <tr class="entry_cont">
12254            <td class="entry_details" colspan="5">
12255              <p>Only available if faceDetectMode != OFF</p>
12256            </td>
12257          </tr>
12258
12259
12260          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12261           <!-- end of entry -->
12262        
12263                
12264          <tr class="entry" id="dynamic_android.statistics.faceScores">
12265            <td class="entry_name" rowspan="3">
12266              android.<wbr/>statistics.<wbr/>face<wbr/>Scores
12267            </td>
12268            <td class="entry_type">
12269                <span class="entry_type_name">byte</span>
12270                <span class="entry_type_container">x</span>
12271
12272                <span class="entry_type_array">
12273                  n
12274                </span>
12275              <span class="entry_type_visibility"> [hidden]</span>
12276
12277
12278            </td> <!-- entry_type -->
12279
12280            <td class="entry_description">
12281              <p>List of the face confidence scores for
12282detected faces</p>
12283            </td>
12284
12285            <td class="entry_units">
12286            </td>
12287
12288            <td class="entry_range">
12289              <p>1-100</p>
12290            </td>
12291
12292            <td class="entry_tags">
12293              <ul class="entry_tags">
12294                  <li><a href="#tag_BC">BC</a></li>
12295              </ul>
12296            </td>
12297
12298          </tr>
12299          <tr class="entries_header">
12300            <th class="th_details" colspan="5">Details</th>
12301          </tr>
12302          <tr class="entry_cont">
12303            <td class="entry_details" colspan="5">
12304              <p>Only available if faceDetectMode != OFF.<wbr/> The value should be
12305meaningful (for example,<wbr/> setting 100 at all times is illegal).<wbr/></p>
12306            </td>
12307          </tr>
12308
12309
12310          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12311           <!-- end of entry -->
12312        
12313                
12314          <tr class="entry" id="dynamic_android.statistics.histogram">
12315            <td class="entry_name" rowspan="3">
12316              android.<wbr/>statistics.<wbr/>histogram
12317            </td>
12318            <td class="entry_type">
12319                <span class="entry_type_name">int32</span>
12320                <span class="entry_type_container">x</span>
12321
12322                <span class="entry_type_array">
12323                  n x 3
12324                </span>
12325              <span class="entry_type_visibility"> [system]</span>
12326                <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>
12327
12328
12329            </td> <!-- entry_type -->
12330
12331            <td class="entry_description">
12332              <p>A 3-channel histogram based on the raw
12333sensor data</p>
12334            </td>
12335
12336            <td class="entry_units">
12337            </td>
12338
12339            <td class="entry_range">
12340            </td>
12341
12342            <td class="entry_tags">
12343              <ul class="entry_tags">
12344                  <li><a href="#tag_V1">V1</a></li>
12345              </ul>
12346            </td>
12347
12348          </tr>
12349          <tr class="entries_header">
12350            <th class="th_details" colspan="5">Details</th>
12351          </tr>
12352          <tr class="entry_cont">
12353            <td class="entry_details" colspan="5">
12354              <p>The k'th bucket (0-based) covers the input range
12355(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/>
12356(k + 1) * w /<wbr/> N ).<wbr/> If only a monochrome sharpness map is
12357supported,<wbr/> all channels should have the same data</p>
12358            </td>
12359          </tr>
12360
12361
12362          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12363           <!-- end of entry -->
12364        
12365                
12366          <tr class="entry" id="dynamic_android.statistics.histogramMode">
12367            <td class="entry_name" rowspan="1">
12368              android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
12369            </td>
12370            <td class="entry_type">
12371                <span class="entry_type_name entry_type_name_enum">byte</span>
12372
12373              <span class="entry_type_visibility"> [system as boolean]</span>
12374
12375                <ul class="entry_type_enum">
12376                  <li>
12377                    <span class="entry_type_enum_name">OFF</span>
12378                  </li>
12379                  <li>
12380                    <span class="entry_type_enum_name">ON</span>
12381                  </li>
12382                </ul>
12383
12384            </td> <!-- entry_type -->
12385
12386            <td class="entry_description">
12387              <p>Operating mode for histogram
12388generation</p>
12389            </td>
12390
12391            <td class="entry_units">
12392            </td>
12393
12394            <td class="entry_range">
12395            </td>
12396
12397            <td class="entry_tags">
12398              <ul class="entry_tags">
12399                  <li><a href="#tag_V1">V1</a></li>
12400              </ul>
12401            </td>
12402
12403          </tr>
12404
12405
12406          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12407           <!-- end of entry -->
12408        
12409                
12410          <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
12411            <td class="entry_name" rowspan="3">
12412              android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map
12413            </td>
12414            <td class="entry_type">
12415                <span class="entry_type_name">int32</span>
12416                <span class="entry_type_container">x</span>
12417
12418                <span class="entry_type_array">
12419                  n x m x 3
12420                </span>
12421              <span class="entry_type_visibility"> [system]</span>
12422                <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>
12423
12424
12425            </td> <!-- entry_type -->
12426
12427            <td class="entry_description">
12428              <p>A 3-channel sharpness map,<wbr/> based on the raw
12429sensor data</p>
12430            </td>
12431
12432            <td class="entry_units">
12433            </td>
12434
12435            <td class="entry_range">
12436            </td>
12437
12438            <td class="entry_tags">
12439              <ul class="entry_tags">
12440                  <li><a href="#tag_V1">V1</a></li>
12441              </ul>
12442            </td>
12443
12444          </tr>
12445          <tr class="entries_header">
12446            <th class="th_details" colspan="5">Details</th>
12447          </tr>
12448          <tr class="entry_cont">
12449            <td class="entry_details" colspan="5">
12450              <p>If only a monochrome sharpness map is supported,<wbr/>
12451all channels should have the same data</p>
12452            </td>
12453          </tr>
12454
12455
12456          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12457           <!-- end of entry -->
12458        
12459                
12460          <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
12461            <td class="entry_name" rowspan="1">
12462              android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
12463            </td>
12464            <td class="entry_type">
12465                <span class="entry_type_name entry_type_name_enum">byte</span>
12466
12467              <span class="entry_type_visibility"> [system as boolean]</span>
12468
12469                <ul class="entry_type_enum">
12470                  <li>
12471                    <span class="entry_type_enum_name">OFF</span>
12472                  </li>
12473                  <li>
12474                    <span class="entry_type_enum_name">ON</span>
12475                  </li>
12476                </ul>
12477
12478            </td> <!-- entry_type -->
12479
12480            <td class="entry_description">
12481              <p>Operating mode for sharpness map
12482generation</p>
12483            </td>
12484
12485            <td class="entry_units">
12486            </td>
12487
12488            <td class="entry_range">
12489            </td>
12490
12491            <td class="entry_tags">
12492              <ul class="entry_tags">
12493                  <li><a href="#tag_V1">V1</a></li>
12494              </ul>
12495            </td>
12496
12497          </tr>
12498
12499
12500          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12501           <!-- end of entry -->
12502        
12503                
12504          <tr class="entry" id="dynamic_android.statistics.lensShadingMap">
12505            <td class="entry_name" rowspan="3">
12506              android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map
12507            </td>
12508            <td class="entry_type">
12509                <span class="entry_type_name">float</span>
12510                <span class="entry_type_container">x</span>
12511
12512                <span class="entry_type_array">
12513                  4 x n x m
12514                </span>
12515              <span class="entry_type_visibility"> [public]</span>
12516                <div class="entry_type_notes">2D array of float gain factors per channel to correct lens shading</div>
12517
12518
12519            </td> <!-- entry_type -->
12520
12521            <td class="entry_description">
12522              <p>The shading map is a low-resolution floating-point map
12523that lists the coefficients used to correct for vignetting,<wbr/> for each
12524Bayer color channel.<wbr/></p>
12525            </td>
12526
12527            <td class="entry_units">
12528            </td>
12529
12530            <td class="entry_range">
12531              <p>Each gain factor is &gt;= 1</p>
12532            </td>
12533
12534            <td class="entry_tags">
12535            </td>
12536
12537          </tr>
12538          <tr class="entries_header">
12539            <th class="th_details" colspan="5">Details</th>
12540          </tr>
12541          <tr class="entry_cont">
12542            <td class="entry_details" colspan="5">
12543              <p>The least shaded section of the image should have a gain factor
12544of 1; all other sections should have gains above 1.<wbr/></p>
12545<p>When <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> = TRANSFORM_<wbr/>MATRIX,<wbr/> the map
12546must take into account the colorCorrection settings.<wbr/></p>
12547<p>The shading map is for the entire active pixel array,<wbr/> and is not
12548affected by the crop region specified in the request.<wbr/> Each shading map
12549entry is the value of the shading compensation map over a specific
12550pixel on the sensor.<wbr/>  Specifically,<wbr/> with a (N x M) resolution shading
12551map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
12552(x,<wbr/>y) ϵ (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
12553pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
12554The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
12555<p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
12556channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
12557The shading map is stored in a fully interleaved format,<wbr/> and its size
12558is 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>
12559<p>The shading map should have on the order of 30-40 rows and columns,<wbr/>
12560and must be smaller than 64x64.<wbr/></p>
12561<p>As an example,<wbr/> given a very small map defined as:</p>
12562<pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]
12563<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> =
12564[ 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/>
12565    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/>
12566  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/>
12567    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/>
12568  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/>
12569    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 ]
12570</code></pre>
12571<p>The low-resolution scaling map images for each channel are
12572(displayed using nearest-neighbor interpolation):</p>
12573<p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
12574<img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
12575<img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
12576<img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
12577<p>As a visualization only,<wbr/> inverting the full-color map to recover an
12578image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p>
12579<p><img alt="Image of a uniform white wall (inverse shading map)" src="images/camera2/metadata/android.statistics.lensShadingMap/inv_shading.png"/></p>
12580            </td>
12581          </tr>
12582
12583
12584          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12585           <!-- end of entry -->
12586        
12587                
12588          <tr class="entry" id="dynamic_android.statistics.predictedColorGains">
12589            <td class="entry_name" rowspan="3">
12590              android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Gains
12591            </td>
12592            <td class="entry_type">
12593                <span class="entry_type_name">float</span>
12594                <span class="entry_type_container">x</span>
12595
12596                <span class="entry_type_array">
12597                  4
12598                </span>
12599              <span class="entry_type_visibility"> [hidden]</span>
12600                <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
12601
12602
12603            </td> <!-- entry_type -->
12604
12605            <td class="entry_description">
12606              <p>The best-fit color channel gains calculated
12607by the HAL's statistics units for the current output frame</p>
12608            </td>
12609
12610            <td class="entry_units">
12611            </td>
12612
12613            <td class="entry_range">
12614              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
12615            </td>
12616
12617            <td class="entry_tags">
12618            </td>
12619
12620          </tr>
12621          <tr class="entries_header">
12622            <th class="th_details" colspan="5">Details</th>
12623          </tr>
12624          <tr class="entry_cont">
12625            <td class="entry_details" colspan="5">
12626              <p>This may be different than the gains used for this frame,<wbr/>
12627since statistics processing on data from a new frame
12628typically completes after the transform has already been
12629applied to that frame.<wbr/></p>
12630<p>The 4 channel gains are defined in Bayer domain,<wbr/>
12631see <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> for details.<wbr/></p>
12632<p>This value should always be calculated by the AWB block,<wbr/>
12633regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
12634            </td>
12635          </tr>
12636
12637
12638          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12639           <!-- end of entry -->
12640        
12641                
12642          <tr class="entry" id="dynamic_android.statistics.predictedColorTransform">
12643            <td class="entry_name" rowspan="3">
12644              android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Transform
12645            </td>
12646            <td class="entry_type">
12647                <span class="entry_type_name">rational</span>
12648                <span class="entry_type_container">x</span>
12649
12650                <span class="entry_type_array">
12651                  3 x 3
12652                </span>
12653              <span class="entry_type_visibility"> [hidden]</span>
12654                <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
12655
12656
12657            </td> <!-- entry_type -->
12658
12659            <td class="entry_description">
12660              <p>The best-fit color transform matrix estimate
12661calculated by the HAL's statistics units for the current
12662output frame</p>
12663            </td>
12664
12665            <td class="entry_units">
12666            </td>
12667
12668            <td class="entry_range">
12669              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
12670            </td>
12671
12672            <td class="entry_tags">
12673            </td>
12674
12675          </tr>
12676          <tr class="entries_header">
12677            <th class="th_details" colspan="5">Details</th>
12678          </tr>
12679          <tr class="entry_cont">
12680            <td class="entry_details" colspan="5">
12681              <p>The HAL must provide the estimate from its
12682statistics unit on the white balance transforms to use
12683for the next frame.<wbr/> These are the values the HAL believes
12684are the best fit for the current output frame.<wbr/> This may
12685be different than the transform used for this frame,<wbr/> since
12686statistics processing on data from a new frame typically
12687completes after the transform has already been applied to
12688that frame.<wbr/></p>
12689<p>These estimates must be provided for all frames,<wbr/> even if
12690capture settings and color transforms are set by the application.<wbr/></p>
12691<p>This value should always be calculated by the AWB block,<wbr/>
12692regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
12693            </td>
12694          </tr>
12695
12696
12697          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12698           <!-- end of entry -->
12699        
12700                
12701          <tr class="entry" id="dynamic_android.statistics.sceneFlicker">
12702            <td class="entry_name" rowspan="3">
12703              android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker
12704            </td>
12705            <td class="entry_type">
12706                <span class="entry_type_name entry_type_name_enum">byte</span>
12707
12708              <span class="entry_type_visibility"> [public]</span>
12709
12710                <ul class="entry_type_enum">
12711                  <li>
12712                    <span class="entry_type_enum_name">NONE</span>
12713                  </li>
12714                  <li>
12715                    <span class="entry_type_enum_name">50HZ</span>
12716                  </li>
12717                  <li>
12718                    <span class="entry_type_enum_name">60HZ</span>
12719                  </li>
12720                </ul>
12721
12722            </td> <!-- entry_type -->
12723
12724            <td class="entry_description">
12725              <p>The HAL estimated scene illumination lighting
12726frequency</p>
12727            </td>
12728
12729            <td class="entry_units">
12730            </td>
12731
12732            <td class="entry_range">
12733            </td>
12734
12735            <td class="entry_tags">
12736            </td>
12737
12738          </tr>
12739          <tr class="entries_header">
12740            <th class="th_details" colspan="5">Details</th>
12741          </tr>
12742          <tr class="entry_cont">
12743            <td class="entry_details" colspan="5">
12744              <p>Report NONE if there doesn't appear to be flickering
12745illumination</p>
12746            </td>
12747          </tr>
12748
12749
12750          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12751           <!-- end of entry -->
12752        
12753        
12754
12755      <!-- end of kind -->
12756      </tbody>
12757
12758  <!-- end of section -->
12759  <tr><td colspan="6" id="section_tonemap" class="section">tonemap</td></tr>
12760
12761
12762      <tr><td colspan="6" class="kind">controls</td></tr>
12763
12764      <thead class="entries_header">
12765        <tr>
12766          <th class="th_name">Property Name</th>
12767          <th class="th_type">Type</th>
12768          <th class="th_description">Description</th>
12769          <th class="th_units">Units</th>
12770          <th class="th_range">Range</th>
12771          <th class="th_tags">Tags</th>
12772        </tr>
12773      </thead>
12774
12775      <tbody>
12776
12777        
12778
12779        
12780
12781        
12782
12783        
12784
12785                
12786          <tr class="entry" id="controls_android.tonemap.curveBlue">
12787            <td class="entry_name" rowspan="3">
12788              android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
12789            </td>
12790            <td class="entry_type">
12791                <span class="entry_type_name">float</span>
12792                <span class="entry_type_container">x</span>
12793
12794                <span class="entry_type_array">
12795                  n x 2
12796                </span>
12797              <span class="entry_type_visibility"> [public]</span>
12798                <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>
12799
12800
12801            </td> <!-- entry_type -->
12802
12803            <td class="entry_description">
12804              <p>Table mapping blue input values to output
12805values</p>
12806            </td>
12807
12808            <td class="entry_units">
12809              same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
12810            </td>
12811
12812            <td class="entry_range">
12813              <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p>
12814            </td>
12815
12816            <td class="entry_tags">
12817            </td>
12818
12819          </tr>
12820          <tr class="entries_header">
12821            <th class="th_details" colspan="5">Details</th>
12822          </tr>
12823          <tr class="entry_cont">
12824            <td class="entry_details" colspan="5">
12825              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
12826channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is CONTRAST_<wbr/>CURVE.<wbr/></p>
12827<p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
12828            </td>
12829          </tr>
12830
12831
12832          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12833           <!-- end of entry -->
12834        
12835                
12836          <tr class="entry" id="controls_android.tonemap.curveGreen">
12837            <td class="entry_name" rowspan="3">
12838              android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
12839            </td>
12840            <td class="entry_type">
12841                <span class="entry_type_name">float</span>
12842                <span class="entry_type_container">x</span>
12843
12844                <span class="entry_type_array">
12845                  n x 2
12846                </span>
12847              <span class="entry_type_visibility"> [public]</span>
12848                <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>
12849
12850
12851            </td> <!-- entry_type -->
12852
12853            <td class="entry_description">
12854              <p>Table mapping green input values to output
12855values</p>
12856            </td>
12857
12858            <td class="entry_units">
12859              same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
12860            </td>
12861
12862            <td class="entry_range">
12863              <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p>
12864            </td>
12865
12866            <td class="entry_tags">
12867            </td>
12868
12869          </tr>
12870          <tr class="entries_header">
12871            <th class="th_details" colspan="5">Details</th>
12872          </tr>
12873          <tr class="entry_cont">
12874            <td class="entry_details" colspan="5">
12875              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
12876channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is CONTRAST_<wbr/>CURVE.<wbr/></p>
12877<p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
12878            </td>
12879          </tr>
12880
12881
12882          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12883           <!-- end of entry -->
12884        
12885                
12886          <tr class="entry" id="controls_android.tonemap.curveRed">
12887            <td class="entry_name" rowspan="3">
12888              android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
12889            </td>
12890            <td class="entry_type">
12891                <span class="entry_type_name">float</span>
12892                <span class="entry_type_container">x</span>
12893
12894                <span class="entry_type_array">
12895                  n x 2
12896                </span>
12897              <span class="entry_type_visibility"> [public]</span>
12898                <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>
12899
12900
12901            </td> <!-- entry_type -->
12902
12903            <td class="entry_description">
12904              <p>Table mapping red input values to output
12905values</p>
12906            </td>
12907
12908            <td class="entry_units">
12909            </td>
12910
12911            <td class="entry_range">
12912              <p>0-1 on input and output coordinates.<wbr/></p>
12913            </td>
12914
12915            <td class="entry_tags">
12916              <ul class="entry_tags">
12917                  <li><a href="#tag_DNG">DNG</a></li>
12918              </ul>
12919            </td>
12920
12921          </tr>
12922          <tr class="entries_header">
12923            <th class="th_details" colspan="5">Details</th>
12924          </tr>
12925          <tr class="entry_cont">
12926            <td class="entry_details" colspan="5">
12927              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
12928channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is CONTRAST_<wbr/>CURVE.<wbr/></p>
12929<p>Since the input and output ranges may vary depending on
12930the camera pipeline,<wbr/> the input and output pixel values
12931are represented by normalized floating-point values
12932between 0 and 1,<wbr/> with 0 == black and 1 == white.<wbr/></p>
12933<p>The curve should be linearly interpolated between the
12934defined points.<wbr/> The points will be listed in increasing
12935order of P_<wbr/>IN.<wbr/> For example,<wbr/> if the array is: [0.<wbr/>0,<wbr/> 0.<wbr/>0,<wbr/>
129360.<wbr/>3,<wbr/> 0.<wbr/>5,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0],<wbr/> then the input-&gt;output mapping
12937for a few sample points would be: 0 -&gt; 0,<wbr/> 0.<wbr/>15 -&gt;
129380.<wbr/>25,<wbr/> 0.<wbr/>3 -&gt; 0.<wbr/>5,<wbr/> 0.<wbr/>5 -&gt; 0.<wbr/>64</p>
12939            </td>
12940          </tr>
12941
12942
12943          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12944           <!-- end of entry -->
12945        
12946                
12947          <tr class="entry" id="controls_android.tonemap.mode">
12948            <td class="entry_name" rowspan="1">
12949              android.<wbr/>tonemap.<wbr/>mode
12950            </td>
12951            <td class="entry_type">
12952                <span class="entry_type_name entry_type_name_enum">byte</span>
12953
12954              <span class="entry_type_visibility"> [public]</span>
12955
12956                <ul class="entry_type_enum">
12957                  <li>
12958                    <span class="entry_type_enum_name">CONTRAST_CURVE</span>
12959                    <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
12960android.<wbr/>tonemap.<wbr/>curve</p></span>
12961                  </li>
12962                  <li>
12963                    <span class="entry_type_enum_name">FAST</span>
12964                    <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw
12965bayer output</p></span>
12966                  </li>
12967                  <li>
12968                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
12969                    <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
12970quality</p></span>
12971                  </li>
12972                </ul>
12973
12974            </td> <!-- entry_type -->
12975
12976            <td class="entry_description">
12977            </td>
12978
12979            <td class="entry_units">
12980            </td>
12981
12982            <td class="entry_range">
12983            </td>
12984
12985            <td class="entry_tags">
12986            </td>
12987
12988          </tr>
12989
12990
12991          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12992           <!-- end of entry -->
12993        
12994        
12995
12996      <!-- end of kind -->
12997      </tbody>
12998      <tr><td colspan="6" class="kind">static</td></tr>
12999
13000      <thead class="entries_header">
13001        <tr>
13002          <th class="th_name">Property Name</th>
13003          <th class="th_type">Type</th>
13004          <th class="th_description">Description</th>
13005          <th class="th_units">Units</th>
13006          <th class="th_range">Range</th>
13007          <th class="th_tags">Tags</th>
13008        </tr>
13009      </thead>
13010
13011      <tbody>
13012
13013        
13014
13015        
13016
13017        
13018
13019        
13020
13021                
13022          <tr class="entry" id="static_android.tonemap.maxCurvePoints">
13023            <td class="entry_name" rowspan="1">
13024              android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points
13025            </td>
13026            <td class="entry_type">
13027                <span class="entry_type_name">int32</span>
13028
13029              <span class="entry_type_visibility"> [public]</span>
13030
13031
13032            </td> <!-- entry_type -->
13033
13034            <td class="entry_description">
13035              <p>Maximum number of supported points in the
13036tonemap curve</p>
13037            </td>
13038
13039            <td class="entry_units">
13040            </td>
13041
13042            <td class="entry_range">
13043              <p>&gt;= 128</p>
13044            </td>
13045
13046            <td class="entry_tags">
13047            </td>
13048
13049          </tr>
13050
13051
13052          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13053           <!-- end of entry -->
13054        
13055        
13056
13057      <!-- end of kind -->
13058      </tbody>
13059      <tr><td colspan="6" class="kind">dynamic</td></tr>
13060
13061      <thead class="entries_header">
13062        <tr>
13063          <th class="th_name">Property Name</th>
13064          <th class="th_type">Type</th>
13065          <th class="th_description">Description</th>
13066          <th class="th_units">Units</th>
13067          <th class="th_range">Range</th>
13068          <th class="th_tags">Tags</th>
13069        </tr>
13070      </thead>
13071
13072      <tbody>
13073
13074        
13075
13076        
13077
13078        
13079
13080        
13081
13082                
13083          <tr class="entry" id="dynamic_android.tonemap.curveBlue">
13084            <td class="entry_name" rowspan="3">
13085              android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
13086            </td>
13087            <td class="entry_type">
13088                <span class="entry_type_name">float</span>
13089                <span class="entry_type_container">x</span>
13090
13091                <span class="entry_type_array">
13092                  n x 2
13093                </span>
13094              <span class="entry_type_visibility"> [public]</span>
13095                <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>
13096
13097
13098            </td> <!-- entry_type -->
13099
13100            <td class="entry_description">
13101              <p>Table mapping blue input values to output
13102values</p>
13103            </td>
13104
13105            <td class="entry_units">
13106              same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
13107            </td>
13108
13109            <td class="entry_range">
13110              <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p>
13111            </td>
13112
13113            <td class="entry_tags">
13114            </td>
13115
13116          </tr>
13117          <tr class="entries_header">
13118            <th class="th_details" colspan="5">Details</th>
13119          </tr>
13120          <tr class="entry_cont">
13121            <td class="entry_details" colspan="5">
13122              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
13123channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is CONTRAST_<wbr/>CURVE.<wbr/></p>
13124<p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
13125            </td>
13126          </tr>
13127
13128
13129          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13130           <!-- end of entry -->
13131        
13132                
13133          <tr class="entry" id="dynamic_android.tonemap.curveGreen">
13134            <td class="entry_name" rowspan="3">
13135              android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
13136            </td>
13137            <td class="entry_type">
13138                <span class="entry_type_name">float</span>
13139                <span class="entry_type_container">x</span>
13140
13141                <span class="entry_type_array">
13142                  n x 2
13143                </span>
13144              <span class="entry_type_visibility"> [public]</span>
13145                <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>
13146
13147
13148            </td> <!-- entry_type -->
13149
13150            <td class="entry_description">
13151              <p>Table mapping green input values to output
13152values</p>
13153            </td>
13154
13155            <td class="entry_units">
13156              same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
13157            </td>
13158
13159            <td class="entry_range">
13160              <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p>
13161            </td>
13162
13163            <td class="entry_tags">
13164            </td>
13165
13166          </tr>
13167          <tr class="entries_header">
13168            <th class="th_details" colspan="5">Details</th>
13169          </tr>
13170          <tr class="entry_cont">
13171            <td class="entry_details" colspan="5">
13172              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
13173channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is CONTRAST_<wbr/>CURVE.<wbr/></p>
13174<p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
13175            </td>
13176          </tr>
13177
13178
13179          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13180           <!-- end of entry -->
13181        
13182                
13183          <tr class="entry" id="dynamic_android.tonemap.curveRed">
13184            <td class="entry_name" rowspan="3">
13185              android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
13186            </td>
13187            <td class="entry_type">
13188                <span class="entry_type_name">float</span>
13189                <span class="entry_type_container">x</span>
13190
13191                <span class="entry_type_array">
13192                  n x 2
13193                </span>
13194              <span class="entry_type_visibility"> [public]</span>
13195                <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>
13196
13197
13198            </td> <!-- entry_type -->
13199
13200            <td class="entry_description">
13201              <p>Table mapping red input values to output
13202values</p>
13203            </td>
13204
13205            <td class="entry_units">
13206            </td>
13207
13208            <td class="entry_range">
13209              <p>0-1 on input and output coordinates.<wbr/></p>
13210            </td>
13211
13212            <td class="entry_tags">
13213              <ul class="entry_tags">
13214                  <li><a href="#tag_DNG">DNG</a></li>
13215              </ul>
13216            </td>
13217
13218          </tr>
13219          <tr class="entries_header">
13220            <th class="th_details" colspan="5">Details</th>
13221          </tr>
13222          <tr class="entry_cont">
13223            <td class="entry_details" colspan="5">
13224              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
13225channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is CONTRAST_<wbr/>CURVE.<wbr/></p>
13226<p>Since the input and output ranges may vary depending on
13227the camera pipeline,<wbr/> the input and output pixel values
13228are represented by normalized floating-point values
13229between 0 and 1,<wbr/> with 0 == black and 1 == white.<wbr/></p>
13230<p>The curve should be linearly interpolated between the
13231defined points.<wbr/> The points will be listed in increasing
13232order of P_<wbr/>IN.<wbr/> For example,<wbr/> if the array is: [0.<wbr/>0,<wbr/> 0.<wbr/>0,<wbr/>
132330.<wbr/>3,<wbr/> 0.<wbr/>5,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0],<wbr/> then the input-&gt;output mapping
13234for a few sample points would be: 0 -&gt; 0,<wbr/> 0.<wbr/>15 -&gt;
132350.<wbr/>25,<wbr/> 0.<wbr/>3 -&gt; 0.<wbr/>5,<wbr/> 0.<wbr/>5 -&gt; 0.<wbr/>64</p>
13236            </td>
13237          </tr>
13238
13239
13240          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13241           <!-- end of entry -->
13242        
13243                
13244          <tr class="entry" id="dynamic_android.tonemap.mode">
13245            <td class="entry_name" rowspan="1">
13246              android.<wbr/>tonemap.<wbr/>mode
13247            </td>
13248            <td class="entry_type">
13249                <span class="entry_type_name entry_type_name_enum">byte</span>
13250
13251              <span class="entry_type_visibility"> [public]</span>
13252
13253                <ul class="entry_type_enum">
13254                  <li>
13255                    <span class="entry_type_enum_name">CONTRAST_CURVE</span>
13256                    <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
13257android.<wbr/>tonemap.<wbr/>curve</p></span>
13258                  </li>
13259                  <li>
13260                    <span class="entry_type_enum_name">FAST</span>
13261                    <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw
13262bayer output</p></span>
13263                  </li>
13264                  <li>
13265                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
13266                    <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
13267quality</p></span>
13268                  </li>
13269                </ul>
13270
13271            </td> <!-- entry_type -->
13272
13273            <td class="entry_description">
13274            </td>
13275
13276            <td class="entry_units">
13277            </td>
13278
13279            <td class="entry_range">
13280            </td>
13281
13282            <td class="entry_tags">
13283            </td>
13284
13285          </tr>
13286
13287
13288          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13289           <!-- end of entry -->
13290        
13291        
13292
13293      <!-- end of kind -->
13294      </tbody>
13295
13296  <!-- end of section -->
13297  <tr><td colspan="6" id="section_led" class="section">led</td></tr>
13298
13299
13300      <tr><td colspan="6" class="kind">controls</td></tr>
13301
13302      <thead class="entries_header">
13303        <tr>
13304          <th class="th_name">Property Name</th>
13305          <th class="th_type">Type</th>
13306          <th class="th_description">Description</th>
13307          <th class="th_units">Units</th>
13308          <th class="th_range">Range</th>
13309          <th class="th_tags">Tags</th>
13310        </tr>
13311      </thead>
13312
13313      <tbody>
13314
13315        
13316
13317        
13318
13319        
13320
13321        
13322
13323                
13324          <tr class="entry" id="controls_android.led.transmit">
13325            <td class="entry_name" rowspan="1">
13326              android.<wbr/>led.<wbr/>transmit
13327            </td>
13328            <td class="entry_type">
13329                <span class="entry_type_name entry_type_name_enum">byte</span>
13330
13331              <span class="entry_type_visibility"> [hidden as boolean]</span>
13332
13333                <ul class="entry_type_enum">
13334                  <li>
13335                    <span class="entry_type_enum_name">OFF</span>
13336                  </li>
13337                  <li>
13338                    <span class="entry_type_enum_name">ON</span>
13339                  </li>
13340                </ul>
13341
13342            </td> <!-- entry_type -->
13343
13344            <td class="entry_description">
13345              <p>This LED is nominally used to indicate to the user
13346that the camera is powered on and may be streaming images back to the
13347Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
13348disable this when video is processed locally and not transmitted to
13349any untrusted applications.<wbr/></p>
13350<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
13351transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
13352data is stored locally on the device.<wbr/></p>
13353<p>The LED <em>may</em> be off if a trusted application is using the data that
13354doesn't violate the above rules.<wbr/></p>
13355            </td>
13356
13357            <td class="entry_units">
13358            </td>
13359
13360            <td class="entry_range">
13361            </td>
13362
13363            <td class="entry_tags">
13364            </td>
13365
13366          </tr>
13367
13368
13369          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13370           <!-- end of entry -->
13371        
13372        
13373
13374      <!-- end of kind -->
13375      </tbody>
13376      <tr><td colspan="6" class="kind">dynamic</td></tr>
13377
13378      <thead class="entries_header">
13379        <tr>
13380          <th class="th_name">Property Name</th>
13381          <th class="th_type">Type</th>
13382          <th class="th_description">Description</th>
13383          <th class="th_units">Units</th>
13384          <th class="th_range">Range</th>
13385          <th class="th_tags">Tags</th>
13386        </tr>
13387      </thead>
13388
13389      <tbody>
13390
13391        
13392
13393        
13394
13395        
13396
13397        
13398
13399                
13400          <tr class="entry" id="dynamic_android.led.transmit">
13401            <td class="entry_name" rowspan="1">
13402              android.<wbr/>led.<wbr/>transmit
13403            </td>
13404            <td class="entry_type">
13405                <span class="entry_type_name entry_type_name_enum">byte</span>
13406
13407              <span class="entry_type_visibility"> [hidden as boolean]</span>
13408
13409                <ul class="entry_type_enum">
13410                  <li>
13411                    <span class="entry_type_enum_name">OFF</span>
13412                  </li>
13413                  <li>
13414                    <span class="entry_type_enum_name">ON</span>
13415                  </li>
13416                </ul>
13417
13418            </td> <!-- entry_type -->
13419
13420            <td class="entry_description">
13421              <p>This LED is nominally used to indicate to the user
13422that the camera is powered on and may be streaming images back to the
13423Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
13424disable this when video is processed locally and not transmitted to
13425any untrusted applications.<wbr/></p>
13426<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
13427transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
13428data is stored locally on the device.<wbr/></p>
13429<p>The LED <em>may</em> be off if a trusted application is using the data that
13430doesn't violate the above rules.<wbr/></p>
13431            </td>
13432
13433            <td class="entry_units">
13434            </td>
13435
13436            <td class="entry_range">
13437            </td>
13438
13439            <td class="entry_tags">
13440            </td>
13441
13442          </tr>
13443
13444
13445          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13446           <!-- end of entry -->
13447        
13448        
13449
13450      <!-- end of kind -->
13451      </tbody>
13452      <tr><td colspan="6" class="kind">static</td></tr>
13453
13454      <thead class="entries_header">
13455        <tr>
13456          <th class="th_name">Property Name</th>
13457          <th class="th_type">Type</th>
13458          <th class="th_description">Description</th>
13459          <th class="th_units">Units</th>
13460          <th class="th_range">Range</th>
13461          <th class="th_tags">Tags</th>
13462        </tr>
13463      </thead>
13464
13465      <tbody>
13466
13467        
13468
13469        
13470
13471        
13472
13473        
13474
13475                
13476          <tr class="entry" id="static_android.led.availableLeds">
13477            <td class="entry_name" rowspan="1">
13478              android.<wbr/>led.<wbr/>available<wbr/>Leds
13479            </td>
13480            <td class="entry_type">
13481                <span class="entry_type_name entry_type_name_enum">byte</span>
13482                <span class="entry_type_container">x</span>
13483
13484                <span class="entry_type_array">
13485                  n
13486                </span>
13487              <span class="entry_type_visibility"> [hidden]</span>
13488
13489                <ul class="entry_type_enum">
13490                  <li>
13491                    <span class="entry_type_enum_name">TRANSMIT</span>
13492                    <span class="entry_type_enum_notes"><p><a href="#controls_android.led.transmit">android.<wbr/>led.<wbr/>transmit</a> control is used</p></span>
13493                  </li>
13494                </ul>
13495
13496            </td> <!-- entry_type -->
13497
13498            <td class="entry_description">
13499              <p>A list of camera LEDs that are available on this system.<wbr/></p>
13500            </td>
13501
13502            <td class="entry_units">
13503            </td>
13504
13505            <td class="entry_range">
13506            </td>
13507
13508            <td class="entry_tags">
13509            </td>
13510
13511          </tr>
13512
13513
13514          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13515           <!-- end of entry -->
13516        
13517        
13518
13519      <!-- end of kind -->
13520      </tbody>
13521
13522  <!-- end of section -->
13523  <tr><td colspan="6" id="section_info" class="section">info</td></tr>
13524
13525
13526      <tr><td colspan="6" class="kind">static</td></tr>
13527
13528      <thead class="entries_header">
13529        <tr>
13530          <th class="th_name">Property Name</th>
13531          <th class="th_type">Type</th>
13532          <th class="th_description">Description</th>
13533          <th class="th_units">Units</th>
13534          <th class="th_range">Range</th>
13535          <th class="th_tags">Tags</th>
13536        </tr>
13537      </thead>
13538
13539      <tbody>
13540
13541        
13542
13543        
13544
13545        
13546
13547        
13548
13549                
13550          <tr class="entry" id="static_android.info.supportedHardwareLevel">
13551            <td class="entry_name" rowspan="1">
13552              android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level
13553            </td>
13554            <td class="entry_type">
13555                <span class="entry_type_name entry_type_name_enum">byte</span>
13556
13557              <span class="entry_type_visibility"> [public]</span>
13558
13559                <ul class="entry_type_enum">
13560                  <li>
13561                    <span class="entry_type_enum_name">LIMITED</span>
13562                  </li>
13563                  <li>
13564                    <span class="entry_type_enum_name">FULL</span>
13565                  </li>
13566                </ul>
13567
13568            </td> <!-- entry_type -->
13569
13570            <td class="entry_description">
13571              <p>The camera 3 HAL device can implement one of two possible
13572operational modes; limited and full.<wbr/> Full support is
13573expected from new higher-end devices.<wbr/> Limited mode has
13574hardware requirements roughly in line with those for a
13575camera HAL device v1 implementation,<wbr/> and is expected from
13576older or inexpensive devices.<wbr/> Full is a strict superset of
13577limited,<wbr/> and they share the same essential operational flow.<wbr/></p>
13578<p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p>
13579            </td>
13580
13581            <td class="entry_units">
13582            </td>
13583
13584            <td class="entry_range">
13585              <p>Optional.<wbr/> Default value is LIMITED.<wbr/></p>
13586            </td>
13587
13588            <td class="entry_tags">
13589            </td>
13590
13591          </tr>
13592
13593
13594          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13595           <!-- end of entry -->
13596        
13597        
13598
13599      <!-- end of kind -->
13600      </tbody>
13601
13602  <!-- end of section -->
13603  <tr><td colspan="6" id="section_blackLevel" class="section">blackLevel</td></tr>
13604
13605
13606      <tr><td colspan="6" class="kind">controls</td></tr>
13607
13608      <thead class="entries_header">
13609        <tr>
13610          <th class="th_name">Property Name</th>
13611          <th class="th_type">Type</th>
13612          <th class="th_description">Description</th>
13613          <th class="th_units">Units</th>
13614          <th class="th_range">Range</th>
13615          <th class="th_tags">Tags</th>
13616        </tr>
13617      </thead>
13618
13619      <tbody>
13620
13621        
13622
13623        
13624
13625        
13626
13627        
13628
13629                
13630          <tr class="entry" id="controls_android.blackLevel.lock">
13631            <td class="entry_name" rowspan="5">
13632              android.<wbr/>black<wbr/>Level.<wbr/>lock
13633            </td>
13634            <td class="entry_type">
13635                <span class="entry_type_name entry_type_name_enum">byte</span>
13636
13637              <span class="entry_type_visibility"> [public as boolean]</span>
13638
13639                <ul class="entry_type_enum">
13640                  <li>
13641                    <span class="entry_type_enum_name">OFF</span>
13642                  </li>
13643                  <li>
13644                    <span class="entry_type_enum_name">ON</span>
13645                  </li>
13646                </ul>
13647
13648            </td> <!-- entry_type -->
13649
13650            <td class="entry_description">
13651              <p>Whether black-level compensation is locked
13652to its current values,<wbr/> or is free to vary.<wbr/></p>
13653            </td>
13654
13655            <td class="entry_units">
13656            </td>
13657
13658            <td class="entry_range">
13659            </td>
13660
13661            <td class="entry_tags">
13662              <ul class="entry_tags">
13663                  <li><a href="#tag_HAL2">HAL2</a></li>
13664              </ul>
13665            </td>
13666
13667          </tr>
13668          <tr class="entries_header">
13669            <th class="th_details" colspan="5">Details</th>
13670          </tr>
13671          <tr class="entry_cont">
13672            <td class="entry_details" colspan="5">
13673              <p>When set to ON,<wbr/> the values used for black-level
13674compensation will not change until the lock is set to
13675OFF.<wbr/></p>
13676<p>Since changes to certain capture parameters (such as
13677exposure time) may require resetting of black level
13678compensation,<wbr/> the camera device must report whether setting
13679the black level lock was successful in the output result
13680metadata.<wbr/></p>
13681<p>For example,<wbr/> if a sequence of requests is as follows:</p>
13682<ul>
13683<li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
13684<li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
13685<li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
13686<li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li>
13687<li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
13688<li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
13689</ul>
13690<p>And the exposure change in Request 4 requires the camera
13691device to reset the black level offsets,<wbr/> then the output
13692result metadata is expected to be:</p>
13693<ul>
13694<li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
13695<li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
13696<li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
13697<li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li>
13698<li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
13699<li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
13700</ul>
13701<p>This indicates to the application that on frame 4,<wbr/> black
13702levels were reset due to exposure value changes,<wbr/> and pixel
13703values may not be consistent across captures.<wbr/></p>
13704<p>The camera device will maintain the lock to the extent
13705possible,<wbr/> only overriding the lock to OFF when changes to
13706other request parameters require a black level recalculation
13707or reset.<wbr/></p>
13708            </td>
13709          </tr>
13710
13711          <tr class="entries_header">
13712            <th class="th_details" colspan="5">HAL Implementation Details</th>
13713          </tr>
13714          <tr class="entry_cont">
13715            <td class="entry_details" colspan="5">
13716              <p>If for some reason black level locking is no longer possible
13717(for example,<wbr/> the analog gain has changed,<wbr/> which forces
13718black level offsets to be recalculated),<wbr/> then the HAL must
13719override this request (and it must report 'OFF' when this
13720does happen) until the next capture for which locking is
13721possible again.<wbr/></p>
13722            </td>
13723          </tr>
13724
13725          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13726           <!-- end of entry -->
13727        
13728        
13729
13730      <!-- end of kind -->
13731      </tbody>
13732      <tr><td colspan="6" class="kind">dynamic</td></tr>
13733
13734      <thead class="entries_header">
13735        <tr>
13736          <th class="th_name">Property Name</th>
13737          <th class="th_type">Type</th>
13738          <th class="th_description">Description</th>
13739          <th class="th_units">Units</th>
13740          <th class="th_range">Range</th>
13741          <th class="th_tags">Tags</th>
13742        </tr>
13743      </thead>
13744
13745      <tbody>
13746
13747        
13748
13749        
13750
13751        
13752
13753        
13754
13755                
13756          <tr class="entry" id="dynamic_android.blackLevel.lock">
13757            <td class="entry_name" rowspan="5">
13758              android.<wbr/>black<wbr/>Level.<wbr/>lock
13759            </td>
13760            <td class="entry_type">
13761                <span class="entry_type_name entry_type_name_enum">byte</span>
13762
13763              <span class="entry_type_visibility"> [public as boolean]</span>
13764
13765                <ul class="entry_type_enum">
13766                  <li>
13767                    <span class="entry_type_enum_name">OFF</span>
13768                  </li>
13769                  <li>
13770                    <span class="entry_type_enum_name">ON</span>
13771                  </li>
13772                </ul>
13773
13774            </td> <!-- entry_type -->
13775
13776            <td class="entry_description">
13777              <p>Whether black-level compensation is locked
13778to its current values,<wbr/> or is free to vary.<wbr/></p>
13779            </td>
13780
13781            <td class="entry_units">
13782            </td>
13783
13784            <td class="entry_range">
13785            </td>
13786
13787            <td class="entry_tags">
13788              <ul class="entry_tags">
13789                  <li><a href="#tag_HAL2">HAL2</a></li>
13790              </ul>
13791            </td>
13792
13793          </tr>
13794          <tr class="entries_header">
13795            <th class="th_details" colspan="5">Details</th>
13796          </tr>
13797          <tr class="entry_cont">
13798            <td class="entry_details" colspan="5">
13799              <p>Whether the black level offset was locked for this frame.<wbr/>  Should be
13800ON if <a href="#controls_android.blackLevel.lock">android.<wbr/>black<wbr/>Level.<wbr/>lock</a> was ON in the capture request,<wbr/> unless
13801a change in other capture settings forced the camera device to
13802perform a black level reset.<wbr/></p>
13803            </td>
13804          </tr>
13805
13806          <tr class="entries_header">
13807            <th class="th_details" colspan="5">HAL Implementation Details</th>
13808          </tr>
13809          <tr class="entry_cont">
13810            <td class="entry_details" colspan="5">
13811              <p>If for some reason black level locking is no longer possible
13812(for example,<wbr/> the analog gain has changed,<wbr/> which forces
13813black level offsets to be recalculated),<wbr/> then the HAL must
13814override this request (and it must report 'OFF' when this
13815does happen) until the next capture for which locking is
13816possible again.<wbr/></p>
13817            </td>
13818          </tr>
13819
13820          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13821           <!-- end of entry -->
13822        
13823        
13824
13825      <!-- end of kind -->
13826      </tbody>
13827
13828  <!-- end of section -->
13829<!-- </namespace> -->
13830  </table>
13831
13832  <div class="tags" id="tag_index">
13833    <h2>Tags</h2>
13834    <ul>
13835      <li id="tag_AWB">AWB - 
13836        Needed for auto white balance
13837    
13838        <ul class="tags_entries">
13839          <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
13840        </ul>
13841      </li> <!-- tag_AWB -->
13842      <li id="tag_BC">BC - 
13843        Needed for backwards compatibility with old Java API
13844    
13845        <ul class="tags_entries">
13846          <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
13847          <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
13848          <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
13849          <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
13850          <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
13851          <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
13852          <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
13853          <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
13854          <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
13855          <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
13856          <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
13857          <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
13858          <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
13859          <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
13860          <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
13861          <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
13862          <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
13863          <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
13864          <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
13865          <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
13866          <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
13867          <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
13868          <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
13869          <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
13870          <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
13871          <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
13872          <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
13873          <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
13874          <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
13875          <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
13876          <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
13877          <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
13878          <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
13879          <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
13880          <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
13881          <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
13882          <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
13883          <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
13884          <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
13885          <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
13886          <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a> (static)</li>
13887          <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
13888          <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
13889          <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
13890          <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
13891          <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
13892          <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
13893          <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
13894          <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
13895          <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
13896          <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
13897          <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
13898          <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
13899          <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
13900          <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
13901          <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
13902          <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
13903          <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
13904          <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
13905          <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
13906          <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
13907          <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
13908          <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
13909          <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
13910          <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
13911        </ul>
13912      </li> <!-- tag_BC -->
13913      <li id="tag_V1">V1 - 
13914        New features for first camera 2 release (API1)
13915    
13916        <ul class="tags_entries">
13917          <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
13918          <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
13919          <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
13920          <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
13921          <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
13922          <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
13923          <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
13924          <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
13925          <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
13926          <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
13927          <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
13928          <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
13929          <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
13930          <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
13931          <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li>
13932          <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
13933          <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
13934          <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li>
13935          <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
13936          <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
13937          <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
13938          <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
13939          <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
13940          <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
13941          <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
13942          <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
13943          <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
13944          <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
13945          <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
13946          <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
13947          <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li>
13948          <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
13949          <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
13950          <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
13951          <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
13952          <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
13953          <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
13954          <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
13955          <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
13956        </ul>
13957      </li> <!-- tag_V1 -->
13958      <li id="tag_ADV">ADV - None
13959        <ul class="tags_entries">
13960          <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
13961          <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
13962          <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li>
13963          <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li>
13964          <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li>
13965          <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
13966        </ul>
13967      </li> <!-- tag_ADV -->
13968      <li id="tag_DNG">DNG - 
13969        Needed for DNG file support
13970    
13971        <ul class="tags_entries">
13972          <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li>
13973          <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
13974          <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
13975          <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
13976          <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
13977          <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
13978          <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li>
13979          <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li>
13980          <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li>
13981          <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li>
13982          <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li>
13983          <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li>
13984          <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
13985          <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li>
13986        </ul>
13987      </li> <!-- tag_DNG -->
13988      <li id="tag_EXIF">EXIF - None
13989        <ul class="tags_entries">
13990          <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
13991        </ul>
13992      </li> <!-- tag_EXIF -->
13993      <li id="tag_HAL2">HAL2 - 
13994        Entry is only used by camera device HAL 2.x
13995    
13996        <ul class="tags_entries">
13997          <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li>
13998          <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li>
13999          <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li>
14000          <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li>
14001        </ul>
14002      </li> <!-- tag_HAL2 -->
14003      <li id="tag_FULL">FULL - 
14004        Entry is required for full hardware level devices, and optional for other hardware levels
14005    
14006        <ul class="tags_entries">
14007          <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
14008          <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
14009          <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li>
14010        </ul>
14011      </li> <!-- tag_FULL -->
14012    </ul>
14013  </div>
14014
14015  [ <a href="#">top</a> ]
14016
14017</body>
14018</html>
14019