docs.html revision e713fa64f77bdb9895415e0fa031b7c6c2668907
1<!DOCTYPE html>
2<html>
3<!-- Copyright (C) 2012 The Android Open Source Project
4
5     Licensed under the Apache License, Version 2.0 (the "License");
6     you may not use this file except in compliance with the License.
7     You may obtain a copy of the License at
8
9          http://www.apache.org/licenses/LICENSE-2.0
10
11     Unless required by applicable law or agreed to in writing, software
12     distributed under the License is distributed on an "AS IS" BASIS,
13     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14     See the License for the specific language governing permissions and
15     limitations under the License.
16-->
17<head>
18  <!-- automatically generated from html.mako. do NOT edit directly -->
19  <meta charset="utf-8" />
20  <title>Android Camera HAL3.2 Properties</title>
21  <style type="text/css">
22     body { background-color: #f7f7f7; font-family: Roboto, sans-serif;}
23     h1 { color: #333333; }
24     h2 { color: #333333; }
25     a:link { color: #258aaf; text-decoration: none}
26     a:hover { color: #459aaf; text-decoration: underline }
27     a:visited { color: #154a5f; text-decoration: none}
28    .section { color: #eeeeee; font-size: 1.5em; font-weight: bold; background-color: #888888; padding: 0.5em 0em 0.5em 0.5em; border-width: thick thin thin thin; border-color: #111111 #777777 #777777 #777777}
29    .kind { color: #eeeeee; font-size: 1.2em; font-weight: bold; padding-left: 1.5em; background-color: #aaaaaa }
30    .entry { background-color: #f0f0f0 }
31    .entry_cont { background-color: #f0f0f0 }
32    .entries_header { background-color: #dddddd; text-align: center}
33
34    /* toc style */
35    .toc_section_header { font-size:1.3em;  }
36    .toc_kind_header { font-size:1.2em;  }
37
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.2 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">static</span>
210          <ul class="toc_section">
211            <li><a href="#static_android.edge.availableEdgeModes">android.edge.availableEdgeModes</a></li>
212          </ul>
213        </li>
214        <li>
215          <span class="toc_kind_header">dynamic</span>
216          <ul class="toc_section">
217            <li><a href="#dynamic_android.edge.mode">android.edge.mode</a></li>
218          </ul>
219        </li>
220      </ul> <!-- toc_section -->
221    </li>
222    <li>
223      <span class="toc_section_header"><a href="#section_flash">flash</a></span>
224      <ul class="toc_section">
225        <li>
226          <span class="toc_kind_header">controls</span>
227          <ul class="toc_section">
228            <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a></li>
229            <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a></li>
230            <li><a href="#controls_android.flash.mode">android.flash.mode</a></li>
231          </ul>
232        </li>
233        <li>
234          <span class="toc_kind_header">static</span>
235          <ul class="toc_section">
236
237            <li><a href="#static_android.flash.info.available">android.flash.info.available</a></li>
238            <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a></li>
239
240            <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a></li>
241            <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a></li>
242          </ul>
243        </li>
244        <li>
245          <span class="toc_kind_header">dynamic</span>
246          <ul class="toc_section">
247            <li><a href="#dynamic_android.flash.firingPower">android.flash.firingPower</a></li>
248            <li><a href="#dynamic_android.flash.firingTime">android.flash.firingTime</a></li>
249            <li><a href="#dynamic_android.flash.mode">android.flash.mode</a></li>
250            <li><a href="#dynamic_android.flash.state">android.flash.state</a></li>
251          </ul>
252        </li>
253      </ul> <!-- toc_section -->
254    </li>
255    <li>
256      <span class="toc_section_header"><a href="#section_hotPixel">hotPixel</a></span>
257      <ul class="toc_section">
258        <li>
259          <span class="toc_kind_header">controls</span>
260          <ul class="toc_section">
261            <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a></li>
262          </ul>
263        </li>
264        <li>
265          <span class="toc_kind_header">static</span>
266          <ul class="toc_section">
267            <li><a href="#static_android.hotPixel.availableHotPixelModes">android.hotPixel.availableHotPixelModes</a></li>
268          </ul>
269        </li>
270        <li>
271          <span class="toc_kind_header">dynamic</span>
272          <ul class="toc_section">
273            <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a></li>
274          </ul>
275        </li>
276      </ul> <!-- toc_section -->
277    </li>
278    <li>
279      <span class="toc_section_header"><a href="#section_jpeg">jpeg</a></span>
280      <ul class="toc_section">
281        <li>
282          <span class="toc_kind_header">controls</span>
283          <ul class="toc_section">
284            <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
285            <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
286            <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
287            <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a></li>
288            <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a></li>
289            <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
290            <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
291          </ul>
292        </li>
293        <li>
294          <span class="toc_kind_header">static</span>
295          <ul class="toc_section">
296            <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a></li>
297            <li><a href="#static_android.jpeg.maxSize">android.jpeg.maxSize</a></li>
298          </ul>
299        </li>
300        <li>
301          <span class="toc_kind_header">dynamic</span>
302          <ul class="toc_section">
303            <li><a href="#dynamic_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
304            <li><a href="#dynamic_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
305            <li><a href="#dynamic_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
306            <li><a href="#dynamic_android.jpeg.orientation">android.jpeg.orientation</a></li>
307            <li><a href="#dynamic_android.jpeg.quality">android.jpeg.quality</a></li>
308            <li><a href="#dynamic_android.jpeg.size">android.jpeg.size</a></li>
309            <li><a href="#dynamic_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
310            <li><a href="#dynamic_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
311          </ul>
312        </li>
313      </ul> <!-- toc_section -->
314    </li>
315    <li>
316      <span class="toc_section_header"><a href="#section_lens">lens</a></span>
317      <ul class="toc_section">
318        <li>
319          <span class="toc_kind_header">controls</span>
320          <ul class="toc_section">
321            <li><a href="#controls_android.lens.aperture">android.lens.aperture</a></li>
322            <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a></li>
323            <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a></li>
324            <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a></li>
325            <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
326          </ul>
327        </li>
328        <li>
329          <span class="toc_kind_header">static</span>
330          <ul class="toc_section">
331
332            <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a></li>
333            <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a></li>
334            <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a></li>
335            <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a></li>
336            <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a></li>
337            <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a></li>
338            <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a></li>
339            <li><a href="#static_android.lens.info.focusDistanceCalibration">android.lens.info.focusDistanceCalibration</a></li>
340
341            <li><a href="#static_android.lens.facing">android.lens.facing</a></li>
342            <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a></li>
343            <li><a href="#static_android.lens.position">android.lens.position</a></li>
344          </ul>
345        </li>
346        <li>
347          <span class="toc_kind_header">dynamic</span>
348          <ul class="toc_section">
349            <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a></li>
350            <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a></li>
351            <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a></li>
352            <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a></li>
353            <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a></li>
354            <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
355            <li><a href="#dynamic_android.lens.state">android.lens.state</a></li>
356          </ul>
357        </li>
358      </ul> <!-- toc_section -->
359    </li>
360    <li>
361      <span class="toc_section_header"><a href="#section_noiseReduction">noiseReduction</a></span>
362      <ul class="toc_section">
363        <li>
364          <span class="toc_kind_header">controls</span>
365          <ul class="toc_section">
366            <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
367            <li><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a></li>
368          </ul>
369        </li>
370        <li>
371          <span class="toc_kind_header">static</span>
372          <ul class="toc_section">
373            <li><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.noiseReduction.availableNoiseReductionModes</a></li>
374          </ul>
375        </li>
376        <li>
377          <span class="toc_kind_header">dynamic</span>
378          <ul class="toc_section">
379            <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
380          </ul>
381        </li>
382      </ul> <!-- toc_section -->
383    </li>
384    <li>
385      <span class="toc_section_header"><a href="#section_quirks">quirks</a></span>
386      <ul class="toc_section">
387        <li>
388          <span class="toc_kind_header">static</span>
389          <ul class="toc_section">
390            <li><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a></li>
391            <li><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a></li>
392            <li><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a></li>
393            <li><a href="#static_android.quirks.usePartialResult">android.quirks.usePartialResult</a></li>
394          </ul>
395        </li>
396        <li>
397          <span class="toc_kind_header">dynamic</span>
398          <ul class="toc_section">
399            <li><a href="#dynamic_android.quirks.partialResult">android.quirks.partialResult</a></li>
400          </ul>
401        </li>
402      </ul> <!-- toc_section -->
403    </li>
404    <li>
405      <span class="toc_section_header"><a href="#section_request">request</a></span>
406      <ul class="toc_section">
407        <li>
408          <span class="toc_kind_header">controls</span>
409          <ul class="toc_section">
410            <li><a href="#controls_android.request.frameCount">android.request.frameCount</a></li>
411            <li><a href="#controls_android.request.id">android.request.id</a></li>
412            <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a></li>
413            <li><a href="#controls_android.request.metadataMode">android.request.metadataMode</a></li>
414            <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a></li>
415            <li><a href="#controls_android.request.type">android.request.type</a></li>
416          </ul>
417        </li>
418        <li>
419          <span class="toc_kind_header">static</span>
420          <ul class="toc_section">
421            <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a></li>
422            <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a></li>
423            <li><a href="#static_android.request.maxNumInputStreams">android.request.maxNumInputStreams</a></li>
424            <li><a href="#static_android.request.pipelineMaxDepth">android.request.pipelineMaxDepth</a></li>
425            <li><a href="#static_android.request.partialResultCount">android.request.partialResultCount</a></li>
426            <li><a href="#static_android.request.availableCapabilities">android.request.availableCapabilities</a></li>
427            <li><a href="#static_android.request.availableRequestKeys">android.request.availableRequestKeys</a></li>
428            <li><a href="#static_android.request.availableResultKeys">android.request.availableResultKeys</a></li>
429            <li><a href="#static_android.request.availableCharacteristicsKeys">android.request.availableCharacteristicsKeys</a></li>
430          </ul>
431        </li>
432        <li>
433          <span class="toc_kind_header">dynamic</span>
434          <ul class="toc_section">
435            <li><a href="#dynamic_android.request.frameCount">android.request.frameCount</a></li>
436            <li><a href="#dynamic_android.request.id">android.request.id</a></li>
437            <li><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a></li>
438            <li><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a></li>
439            <li><a href="#dynamic_android.request.pipelineDepth">android.request.pipelineDepth</a></li>
440          </ul>
441        </li>
442      </ul> <!-- toc_section -->
443    </li>
444    <li>
445      <span class="toc_section_header"><a href="#section_scaler">scaler</a></span>
446      <ul class="toc_section">
447        <li>
448          <span class="toc_kind_header">controls</span>
449          <ul class="toc_section">
450            <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
451          </ul>
452        </li>
453        <li>
454          <span class="toc_kind_header">static</span>
455          <ul class="toc_section">
456            <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a></li>
457            <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a></li>
458            <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a></li>
459            <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a></li>
460            <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a></li>
461            <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a></li>
462            <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a></li>
463            <li><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a></li>
464            <li><a href="#static_android.scaler.availableInputOutputFormatsMap">android.scaler.availableInputOutputFormatsMap</a></li>
465            <li><a href="#static_android.scaler.availableStreamConfigurations">android.scaler.availableStreamConfigurations</a></li>
466            <li><a href="#static_android.scaler.availableMinFrameDurations">android.scaler.availableMinFrameDurations</a></li>
467            <li><a href="#static_android.scaler.availableStallDurations">android.scaler.availableStallDurations</a></li>
468          </ul>
469        </li>
470        <li>
471          <span class="toc_kind_header">dynamic</span>
472          <ul class="toc_section">
473            <li><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
474          </ul>
475        </li>
476      </ul> <!-- toc_section -->
477    </li>
478    <li>
479      <span class="toc_section_header"><a href="#section_sensor">sensor</a></span>
480      <ul class="toc_section">
481        <li>
482          <span class="toc_kind_header">controls</span>
483          <ul class="toc_section">
484            <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
485            <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
486            <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
487            <li><a href="#controls_android.sensor.testPatternData">android.sensor.testPatternData</a></li>
488            <li><a href="#controls_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
489          </ul>
490        </li>
491        <li>
492          <span class="toc_kind_header">static</span>
493          <ul class="toc_section">
494
495            <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a></li>
496            <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a></li>
497            <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a></li>
498            <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a></li>
499            <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a></li>
500            <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a></li>
501            <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a></li>
502            <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a></li>
503
504            <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a></li>
505            <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a></li>
506            <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a></li>
507            <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a></li>
508            <li><a href="#static_android.sensor.profileHueSatMapDimensions">android.sensor.profileHueSatMapDimensions</a></li>
509            <li><a href="#static_android.sensor.availableTestPatternModes">android.sensor.availableTestPatternModes</a></li>
510          </ul>
511        </li>
512        <li>
513          <span class="toc_kind_header">dynamic</span>
514          <ul class="toc_section">
515            <li><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
516            <li><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
517            <li><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
518            <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a></li>
519            <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a></li>
520            <li><a href="#dynamic_android.sensor.referenceIlluminant">android.sensor.referenceIlluminant</a></li>
521            <li><a href="#dynamic_android.sensor.calibrationTransform">android.sensor.calibrationTransform</a></li>
522            <li><a href="#dynamic_android.sensor.colorTransform">android.sensor.colorTransform</a></li>
523            <li><a href="#dynamic_android.sensor.forwardMatrix">android.sensor.forwardMatrix</a></li>
524            <li><a href="#dynamic_android.sensor.neutralColorPoint">android.sensor.neutralColorPoint</a></li>
525            <li><a href="#dynamic_android.sensor.profileHueSatMap">android.sensor.profileHueSatMap</a></li>
526            <li><a href="#dynamic_android.sensor.profileToneCurve">android.sensor.profileToneCurve</a></li>
527            <li><a href="#dynamic_android.sensor.greenSplit">android.sensor.greenSplit</a></li>
528            <li><a href="#dynamic_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
529          </ul>
530        </li>
531      </ul> <!-- toc_section -->
532    </li>
533    <li>
534      <span class="toc_section_header"><a href="#section_shading">shading</a></span>
535      <ul class="toc_section">
536        <li>
537          <span class="toc_kind_header">controls</span>
538          <ul class="toc_section">
539            <li><a href="#controls_android.shading.mode">android.shading.mode</a></li>
540            <li><a href="#controls_android.shading.strength">android.shading.strength</a></li>
541          </ul>
542        </li>
543        <li>
544          <span class="toc_kind_header">dynamic</span>
545          <ul class="toc_section">
546            <li><a href="#dynamic_android.shading.mode">android.shading.mode</a></li>
547          </ul>
548        </li>
549      </ul> <!-- toc_section -->
550    </li>
551    <li>
552      <span class="toc_section_header"><a href="#section_statistics">statistics</a></span>
553      <ul class="toc_section">
554        <li>
555          <span class="toc_kind_header">controls</span>
556          <ul class="toc_section">
557            <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
558            <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
559            <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
560            <li><a href="#controls_android.statistics.hotPixelMapMode">android.statistics.hotPixelMapMode</a></li>
561            <li><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
562          </ul>
563        </li>
564        <li>
565          <span class="toc_kind_header">static</span>
566          <ul class="toc_section">
567
568            <li><a href="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a></li>
569            <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a></li>
570            <li><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a></li>
571            <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a></li>
572            <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a></li>
573            <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a></li>
574            <li><a href="#static_android.statistics.info.availableHotPixelMapModes">android.statistics.info.availableHotPixelMapModes</a></li>
575
576          </ul>
577        </li>
578        <li>
579          <span class="toc_kind_header">dynamic</span>
580          <ul class="toc_section">
581            <li><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
582            <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a></li>
583            <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a></li>
584            <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a></li>
585            <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a></li>
586            <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a></li>
587            <li><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
588            <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a></li>
589            <li><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
590            <li><a href="#dynamic_android.statistics.lensShadingMap">android.statistics.lensShadingMap</a></li>
591            <li><a href="#dynamic_android.statistics.predictedColorGains">android.statistics.predictedColorGains</a></li>
592            <li><a href="#dynamic_android.statistics.predictedColorTransform">android.statistics.predictedColorTransform</a></li>
593            <li><a href="#dynamic_android.statistics.sceneFlicker">android.statistics.sceneFlicker</a></li>
594            <li><a href="#dynamic_android.statistics.hotPixelMapMode">android.statistics.hotPixelMapMode</a></li>
595            <li><a href="#dynamic_android.statistics.hotPixelMap">android.statistics.hotPixelMap</a></li>
596          </ul>
597        </li>
598      </ul> <!-- toc_section -->
599    </li>
600    <li>
601      <span class="toc_section_header"><a href="#section_tonemap">tonemap</a></span>
602      <ul class="toc_section">
603        <li>
604          <span class="toc_kind_header">controls</span>
605          <ul class="toc_section">
606            <li><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
607            <li><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
608            <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
609            <li><a href="#controls_android.tonemap.mode">android.tonemap.mode</a></li>
610          </ul>
611        </li>
612        <li>
613          <span class="toc_kind_header">static</span>
614          <ul class="toc_section">
615            <li><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a></li>
616            <li><a href="#static_android.tonemap.availableToneMapModes">android.tonemap.availableToneMapModes</a></li>
617          </ul>
618        </li>
619        <li>
620          <span class="toc_kind_header">dynamic</span>
621          <ul class="toc_section">
622            <li><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
623            <li><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
624            <li><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
625            <li><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a></li>
626          </ul>
627        </li>
628      </ul> <!-- toc_section -->
629    </li>
630    <li>
631      <span class="toc_section_header"><a href="#section_led">led</a></span>
632      <ul class="toc_section">
633        <li>
634          <span class="toc_kind_header">controls</span>
635          <ul class="toc_section">
636            <li><a href="#controls_android.led.transmit">android.led.transmit</a></li>
637          </ul>
638        </li>
639        <li>
640          <span class="toc_kind_header">dynamic</span>
641          <ul class="toc_section">
642            <li><a href="#dynamic_android.led.transmit">android.led.transmit</a></li>
643          </ul>
644        </li>
645        <li>
646          <span class="toc_kind_header">static</span>
647          <ul class="toc_section">
648            <li><a href="#static_android.led.availableLeds">android.led.availableLeds</a></li>
649          </ul>
650        </li>
651      </ul> <!-- toc_section -->
652    </li>
653    <li>
654      <span class="toc_section_header"><a href="#section_info">info</a></span>
655      <ul class="toc_section">
656        <li>
657          <span class="toc_kind_header">static</span>
658          <ul class="toc_section">
659            <li><a href="#static_android.info.supportedHardwareLevel">android.info.supportedHardwareLevel</a></li>
660          </ul>
661        </li>
662      </ul> <!-- toc_section -->
663    </li>
664    <li>
665      <span class="toc_section_header"><a href="#section_blackLevel">blackLevel</a></span>
666      <ul class="toc_section">
667        <li>
668          <span class="toc_kind_header">controls</span>
669          <ul class="toc_section">
670            <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a></li>
671          </ul>
672        </li>
673        <li>
674          <span class="toc_kind_header">dynamic</span>
675          <ul class="toc_section">
676            <li><a href="#dynamic_android.blackLevel.lock">android.blackLevel.lock</a></li>
677          </ul>
678        </li>
679      </ul> <!-- toc_section -->
680    </li>
681    <li>
682      <span class="toc_section_header"><a href="#section_sync">sync</a></span>
683      <ul class="toc_section">
684        <li>
685          <span class="toc_kind_header">dynamic</span>
686          <ul class="toc_section">
687            <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a></li>
688          </ul>
689        </li>
690        <li>
691          <span class="toc_kind_header">static</span>
692          <ul class="toc_section">
693            <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a></li>
694          </ul>
695        </li>
696      </ul> <!-- toc_section -->
697    </li>
698  </ul>
699
700
701  <h1>Properties</h1>
702  <table class="properties">
703
704    <thead class="thead_dummy">
705      <tr>
706        <th class="th_name">Property Name</th>
707        <th class="th_type">Type</th>
708        <th class="th_description">Description</th>
709        <th class="th_units">Units</th>
710        <th class="th_range">Range</th>
711        <th class="th_tags">Tags</th>
712      </tr>
713    </thead> <!-- so that the first occurrence of thead is not
714                         above the first occurrence of tr -->
715<!-- <namespace name="android"> -->
716  <tr><td colspan="6" id="section_colorCorrection" class="section">colorCorrection</td></tr>
717
718
719      <tr><td colspan="6" class="kind">controls</td></tr>
720
721      <thead class="entries_header">
722        <tr>
723          <th class="th_name">Property Name</th>
724          <th class="th_type">Type</th>
725          <th class="th_description">Description</th>
726          <th class="th_units">Units</th>
727          <th class="th_range">Range</th>
728          <th class="th_tags">Tags</th>
729        </tr>
730      </thead>
731
732      <tbody>
733
734        
735
736        
737
738        
739
740        
741
742                
743          <tr class="entry" id="controls_android.colorCorrection.mode">
744            <td class="entry_name" rowspan="3">
745              android.<wbr/>color<wbr/>Correction.<wbr/>mode
746            </td>
747            <td class="entry_type">
748                <span class="entry_type_name entry_type_name_enum">byte</span>
749
750              <span class="entry_type_visibility"> [public]</span>
751
752                <ul class="entry_type_enum">
753                  <li>
754                    <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
755                    <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
756and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
757<p>All advanced white balance adjustments (not specified
758by our white balance pipeline) must be disabled.<wbr/></p>
759<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
760TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override
761this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
762                  </li>
763                  <li>
764                    <span class="entry_type_enum_name">FAST</span>
765                    <span class="entry_type_enum_notes"><p>Must not slow down capture rate relative to sensor raw
766output.<wbr/></p>
767<p>Advanced white balance adjustments above and beyond
768the specified white balance pipeline may be applied.<wbr/></p>
769<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
770the camera device uses the last frame's AWB values
771(or defaults if AWB has never been run).<wbr/></p></span>
772                  </li>
773                  <li>
774                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
775                    <span class="entry_type_enum_notes"><p>Capture rate (relative to sensor raw output)
776may be reduced by high quality.<wbr/></p>
777<p>Advanced white balance adjustments above and beyond
778the specified white balance pipeline may be applied.<wbr/></p>
779<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
780the camera device uses the last frame's AWB values
781(or defaults if AWB has never been run).<wbr/></p></span>
782                  </li>
783                </ul>
784
785            </td> <!-- entry_type -->
786
787            <td class="entry_description">
788              <p>The mode control selects how the image data is converted from the
789sensor's native color into linear sRGB color.<wbr/></p>
790            </td>
791
792            <td class="entry_units">
793            </td>
794
795            <td class="entry_range">
796            </td>
797
798            <td class="entry_tags">
799            </td>
800
801          </tr>
802          <tr class="entries_header">
803            <th class="th_details" colspan="5">Details</th>
804          </tr>
805          <tr class="entry_cont">
806            <td class="entry_details" colspan="5">
807              <p>When auto-white balance is enabled with <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> this
808control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the
809application controls how the color mapping is performed.<wbr/></p>
810<p>We define the expected processing pipeline below.<wbr/> For consistency
811across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p>
812<p>When either FULL or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may
813do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
814<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the
815camera device (in the results) and be roughly correct.<wbr/></p>
816<p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from
817FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point
818as what was produced by the camera device in the earlier frame.<wbr/></p>
819<p>The expected processing pipeline is as follows:</p>
820<p><img alt="White balance processing pipeline" src="images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png"/></p>
821<p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance
822gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform
823matrix (applied after demosaic).<wbr/></p>
824<p>The 4-channel white-balance gains are defined as:</p>
825<pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ]
826</code></pre>
827<p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the
828output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/>
829These may be identical for a given camera device implementation; if
830the camera device does not support a separate gain for even/<wbr/>odd green
831channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
832<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
833<p>The matrices for color transforms are defined as a 9-entry vector:</p>
834<pre><code><a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> = [ I0 I1 I2 I3 I4 I5 I6 I7 I8 ]
835</code></pre>
836<p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/>
837to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p>
838<p>with colors as follows:</p>
839<pre><code>r' = I0r + I1g + I2b
840g' = I3r + I4g + I5b
841b' = I6r + I7g + I8b
842</code></pre>
843<p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow
844values are clipped to fit within the range.<wbr/></p>
845            </td>
846          </tr>
847
848
849          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
850           <!-- end of entry -->
851        
852                
853          <tr class="entry" id="controls_android.colorCorrection.transform">
854            <td class="entry_name" rowspan="3">
855              android.<wbr/>color<wbr/>Correction.<wbr/>transform
856            </td>
857            <td class="entry_type">
858                <span class="entry_type_name">rational</span>
859                <span class="entry_type_container">x</span>
860
861                <span class="entry_type_array">
862                  3 x 3
863                </span>
864              <span class="entry_type_visibility"> [public]</span>
865                <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
866
867
868            </td> <!-- entry_type -->
869
870            <td class="entry_description">
871              <p>A color transform matrix to use to transform
872from sensor RGB color space to output linear sRGB color space</p>
873            </td>
874
875            <td class="entry_units">
876            </td>
877
878            <td class="entry_range">
879            </td>
880
881            <td class="entry_tags">
882            </td>
883
884          </tr>
885          <tr class="entries_header">
886            <th class="th_details" colspan="5">Details</th>
887          </tr>
888          <tr class="entry_cont">
889            <td class="entry_details" colspan="5">
890              <p>This matrix is either set by the camera device when the request
891<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
892directly by the application in the request when the
893<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
894<p>In the latter case,<wbr/> the camera device may round the matrix to account
895for precision issues; the final rounded matrix should be reported back
896in this matrix result metadata.<wbr/> The transform should keep the magnitude
897of the output color values within <code>[0,<wbr/> 1.<wbr/>0]</code> (assuming input color
898values is within the normalized range <code>[0,<wbr/> 1.<wbr/>0]</code>),<wbr/> or clipping may occur.<wbr/></p>
899            </td>
900          </tr>
901
902
903          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
904           <!-- end of entry -->
905        
906                
907          <tr class="entry" id="controls_android.colorCorrection.gains">
908            <td class="entry_name" rowspan="3">
909              android.<wbr/>color<wbr/>Correction.<wbr/>gains
910            </td>
911            <td class="entry_type">
912                <span class="entry_type_name">float</span>
913                <span class="entry_type_container">x</span>
914
915                <span class="entry_type_array">
916                  4
917                </span>
918              <span class="entry_type_visibility"> [public]</span>
919                <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
920
921
922            </td> <!-- entry_type -->
923
924            <td class="entry_description">
925              <p>Gains applying to Bayer raw color channels for
926white-balance.<wbr/></p>
927            </td>
928
929            <td class="entry_units">
930            </td>
931
932            <td class="entry_range">
933            </td>
934
935            <td class="entry_tags">
936            </td>
937
938          </tr>
939          <tr class="entries_header">
940            <th class="th_details" colspan="5">Details</th>
941          </tr>
942          <tr class="entry_cont">
943            <td class="entry_details" colspan="5">
944              <p>The 4-channel white-balance gains are defined in
945the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
946for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
947is the gain for green pixels on the odd rows.<wbr/> if a HAL
948does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
949it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
950<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
951<p>This array is either set by the camera device when the request
952<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
953directly by the application in the request when the
954<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
955<p>The output should be the gains actually applied by the camera device to
956the current frame.<wbr/></p>
957            </td>
958          </tr>
959
960
961          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
962           <!-- end of entry -->
963        
964        
965
966      <!-- end of kind -->
967      </tbody>
968      <tr><td colspan="6" class="kind">dynamic</td></tr>
969
970      <thead class="entries_header">
971        <tr>
972          <th class="th_name">Property Name</th>
973          <th class="th_type">Type</th>
974          <th class="th_description">Description</th>
975          <th class="th_units">Units</th>
976          <th class="th_range">Range</th>
977          <th class="th_tags">Tags</th>
978        </tr>
979      </thead>
980
981      <tbody>
982
983        
984
985        
986
987        
988
989        
990
991                
992          <tr class="entry" id="dynamic_android.colorCorrection.transform">
993            <td class="entry_name" rowspan="3">
994              android.<wbr/>color<wbr/>Correction.<wbr/>transform
995            </td>
996            <td class="entry_type">
997                <span class="entry_type_name">rational</span>
998                <span class="entry_type_container">x</span>
999
1000                <span class="entry_type_array">
1001                  3 x 3
1002                </span>
1003              <span class="entry_type_visibility"> [public]</span>
1004                <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
1005
1006
1007            </td> <!-- entry_type -->
1008
1009            <td class="entry_description">
1010              <p>A color transform matrix to use to transform
1011from sensor RGB color space to output linear sRGB color space</p>
1012            </td>
1013
1014            <td class="entry_units">
1015            </td>
1016
1017            <td class="entry_range">
1018            </td>
1019
1020            <td class="entry_tags">
1021            </td>
1022
1023          </tr>
1024          <tr class="entries_header">
1025            <th class="th_details" colspan="5">Details</th>
1026          </tr>
1027          <tr class="entry_cont">
1028            <td class="entry_details" colspan="5">
1029              <p>This matrix is either set by the camera device when the request
1030<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
1031directly by the application in the request when the
1032<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
1033<p>In the latter case,<wbr/> the camera device may round the matrix to account
1034for precision issues; the final rounded matrix should be reported back
1035in this matrix result metadata.<wbr/> The transform should keep the magnitude
1036of the output color values within <code>[0,<wbr/> 1.<wbr/>0]</code> (assuming input color
1037values is within the normalized range <code>[0,<wbr/> 1.<wbr/>0]</code>),<wbr/> or clipping may occur.<wbr/></p>
1038            </td>
1039          </tr>
1040
1041
1042          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1043           <!-- end of entry -->
1044        
1045                
1046          <tr class="entry" id="dynamic_android.colorCorrection.gains">
1047            <td class="entry_name" rowspan="3">
1048              android.<wbr/>color<wbr/>Correction.<wbr/>gains
1049            </td>
1050            <td class="entry_type">
1051                <span class="entry_type_name">float</span>
1052                <span class="entry_type_container">x</span>
1053
1054                <span class="entry_type_array">
1055                  4
1056                </span>
1057              <span class="entry_type_visibility"> [public]</span>
1058                <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
1059
1060
1061            </td> <!-- entry_type -->
1062
1063            <td class="entry_description">
1064              <p>Gains applying to Bayer raw color channels for
1065white-balance.<wbr/></p>
1066            </td>
1067
1068            <td class="entry_units">
1069            </td>
1070
1071            <td class="entry_range">
1072            </td>
1073
1074            <td class="entry_tags">
1075            </td>
1076
1077          </tr>
1078          <tr class="entries_header">
1079            <th class="th_details" colspan="5">Details</th>
1080          </tr>
1081          <tr class="entry_cont">
1082            <td class="entry_details" colspan="5">
1083              <p>The 4-channel white-balance gains are defined in
1084the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
1085for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
1086is the gain for green pixels on the odd rows.<wbr/> if a HAL
1087does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
1088it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
1089<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
1090<p>This array is either set by the camera device when the request
1091<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
1092directly by the application in the request when the
1093<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
1094<p>The output should be the gains actually applied by the camera device to
1095the current frame.<wbr/></p>
1096            </td>
1097          </tr>
1098
1099
1100          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1101           <!-- end of entry -->
1102        
1103        
1104
1105      <!-- end of kind -->
1106      </tbody>
1107
1108  <!-- end of section -->
1109  <tr><td colspan="6" id="section_control" class="section">control</td></tr>
1110
1111
1112      <tr><td colspan="6" class="kind">controls</td></tr>
1113
1114      <thead class="entries_header">
1115        <tr>
1116          <th class="th_name">Property Name</th>
1117          <th class="th_type">Type</th>
1118          <th class="th_description">Description</th>
1119          <th class="th_units">Units</th>
1120          <th class="th_range">Range</th>
1121          <th class="th_tags">Tags</th>
1122        </tr>
1123      </thead>
1124
1125      <tbody>
1126
1127        
1128
1129        
1130
1131        
1132
1133        
1134
1135                
1136          <tr class="entry" id="controls_android.control.aeAntibandingMode">
1137            <td class="entry_name" rowspan="5">
1138              android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
1139            </td>
1140            <td class="entry_type">
1141                <span class="entry_type_name entry_type_name_enum">byte</span>
1142
1143              <span class="entry_type_visibility"> [public]</span>
1144
1145                <ul class="entry_type_enum">
1146                  <li>
1147                    <span class="entry_type_enum_name">OFF</span>
1148                    <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
1149avoid banding problems.<wbr/></p></span>
1150                  </li>
1151                  <li>
1152                    <span class="entry_type_enum_name">50HZ</span>
1153                    <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1154avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
1155                  </li>
1156                  <li>
1157                    <span class="entry_type_enum_name">60HZ</span>
1158                    <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1159avoid banding problems with 60Hz illumination
1160sources.<wbr/></p></span>
1161                  </li>
1162                  <li>
1163                    <span class="entry_type_enum_name">AUTO</span>
1164                    <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
1165antibanding routine to the current illumination
1166conditions.<wbr/> This is the default.<wbr/></p></span>
1167                  </li>
1168                </ul>
1169
1170            </td> <!-- entry_type -->
1171
1172            <td class="entry_description">
1173              <p>The desired setting for the camera device's auto-exposure
1174algorithm's antibanding compensation.<wbr/></p>
1175            </td>
1176
1177            <td class="entry_units">
1178            </td>
1179
1180            <td class="entry_range">
1181              <p><a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a></p>
1182            </td>
1183
1184            <td class="entry_tags">
1185              <ul class="entry_tags">
1186                  <li><a href="#tag_BC">BC</a></li>
1187              </ul>
1188            </td>
1189
1190          </tr>
1191          <tr class="entries_header">
1192            <th class="th_details" colspan="5">Details</th>
1193          </tr>
1194          <tr class="entry_cont">
1195            <td class="entry_details" colspan="5">
1196              <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
1197lights,<wbr/> flicker at the rate of the power supply frequency
1198(60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
1199typically not noticeable to a person,<wbr/> it can be visible to
1200a camera device.<wbr/> If a camera sets its exposure time to the
1201wrong value,<wbr/> the flicker may become visible in the
1202viewfinder as flicker or in a final captured image,<wbr/> as a
1203set of variable-brightness bands across the image.<wbr/></p>
1204<p>Therefore,<wbr/> the auto-exposure routines of camera devices
1205include antibanding routines that ensure that the chosen
1206exposure value will not cause such banding.<wbr/> The choice of
1207exposure time depends on the rate of flicker,<wbr/> which the
1208camera device can detect automatically,<wbr/> or the expected
1209rate can be selected by the application using this
1210control.<wbr/></p>
1211<p>A given camera device may not support all of the possible
1212options for the antibanding mode.<wbr/> The
1213<a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
1214the available modes for a given camera device.<wbr/></p>
1215<p>The default mode is AUTO,<wbr/> which must be supported by all
1216camera devices.<wbr/></p>
1217<p>If manual exposure control is enabled (by setting
1218<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/>
1219then this setting has no effect,<wbr/> and the application must
1220ensure it selects exposure times that do not cause banding
1221issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
1222the application in this.<wbr/></p>
1223            </td>
1224          </tr>
1225
1226          <tr class="entries_header">
1227            <th class="th_details" colspan="5">HAL Implementation Details</th>
1228          </tr>
1229          <tr class="entry_cont">
1230            <td class="entry_details" colspan="5">
1231              <p>For all capture request templates,<wbr/> this field must be set
1232to AUTO.<wbr/>  AUTO is the only mode that must supported;
1233OFF,<wbr/> 50HZ,<wbr/> 60HZ are all optional.<wbr/></p>
1234<p>If manual exposure control is enabled (by setting
1235<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/>
1236then the exposure values provided by the application must not be
1237adjusted for antibanding.<wbr/></p>
1238            </td>
1239          </tr>
1240
1241          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1242           <!-- end of entry -->
1243        
1244                
1245          <tr class="entry" id="controls_android.control.aeExposureCompensation">
1246            <td class="entry_name" rowspan="3">
1247              android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation
1248            </td>
1249            <td class="entry_type">
1250                <span class="entry_type_name">int32</span>
1251
1252              <span class="entry_type_visibility"> [public]</span>
1253
1254
1255            </td> <!-- entry_type -->
1256
1257            <td class="entry_description">
1258              <p>Adjustment to AE target image
1259brightness</p>
1260            </td>
1261
1262            <td class="entry_units">
1263              count of positive/<wbr/>negative EV steps
1264            </td>
1265
1266            <td class="entry_range">
1267            </td>
1268
1269            <td class="entry_tags">
1270              <ul class="entry_tags">
1271                  <li><a href="#tag_BC">BC</a></li>
1272              </ul>
1273            </td>
1274
1275          </tr>
1276          <tr class="entries_header">
1277            <th class="th_details" colspan="5">Details</th>
1278          </tr>
1279          <tr class="entry_cont">
1280            <td class="entry_details" colspan="5">
1281              <p>For example,<wbr/> if EV step is 0.<wbr/>333,<wbr/> '6' will mean an
1282exposure compensation of +2 EV; -3 will mean an exposure
1283compensation of -1</p>
1284            </td>
1285          </tr>
1286
1287
1288          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1289           <!-- end of entry -->
1290        
1291                
1292          <tr class="entry" id="controls_android.control.aeLock">
1293            <td class="entry_name" rowspan="3">
1294              android.<wbr/>control.<wbr/>ae<wbr/>Lock
1295            </td>
1296            <td class="entry_type">
1297                <span class="entry_type_name entry_type_name_enum">byte</span>
1298
1299              <span class="entry_type_visibility"> [public as boolean]</span>
1300
1301                <ul class="entry_type_enum">
1302                  <li>
1303                    <span class="entry_type_enum_name">OFF</span>
1304                    <span class="entry_type_enum_notes"><p>Autoexposure lock is disabled; the AE algorithm
1305is free to update its parameters.<wbr/></p></span>
1306                  </li>
1307                  <li>
1308                    <span class="entry_type_enum_name">ON</span>
1309                    <span class="entry_type_enum_notes"><p>Autoexposure lock is enabled; the AE algorithm
1310must not update the exposure and sensitivity parameters
1311while the lock is active</p></span>
1312                  </li>
1313                </ul>
1314
1315            </td> <!-- entry_type -->
1316
1317            <td class="entry_description">
1318              <p>Whether AE is currently locked to its latest
1319calculated values.<wbr/></p>
1320            </td>
1321
1322            <td class="entry_units">
1323            </td>
1324
1325            <td class="entry_range">
1326            </td>
1327
1328            <td class="entry_tags">
1329              <ul class="entry_tags">
1330                  <li><a href="#tag_BC">BC</a></li>
1331              </ul>
1332            </td>
1333
1334          </tr>
1335          <tr class="entries_header">
1336            <th class="th_details" colspan="5">Details</th>
1337          </tr>
1338          <tr class="entry_cont">
1339            <td class="entry_details" colspan="5">
1340              <p>Note that even when AE is locked,<wbr/> the flash may be
1341fired if the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/> ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/>
1342ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
1343<p>If AE precapture is triggered (see <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>)
1344when AE is already locked,<wbr/> the camera device will not change the exposure time
1345(<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>) and sensitivity (<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>)
1346parameters.<wbr/> The flash may be fired if the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>
1347is ON_<wbr/>AUTO_<wbr/>FLASH/<wbr/>ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE and the scene is too dark.<wbr/> If the
1348<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> the scene may become overexposed.<wbr/></p>
1349<p>See <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE lock related state transition details.<wbr/></p>
1350            </td>
1351          </tr>
1352
1353
1354          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1355           <!-- end of entry -->
1356        
1357                
1358          <tr class="entry" id="controls_android.control.aeMode">
1359            <td class="entry_name" rowspan="3">
1360              android.<wbr/>control.<wbr/>ae<wbr/>Mode
1361            </td>
1362            <td class="entry_type">
1363                <span class="entry_type_name entry_type_name_enum">byte</span>
1364
1365              <span class="entry_type_visibility"> [public]</span>
1366
1367                <ul class="entry_type_enum">
1368                  <li>
1369                    <span class="entry_type_enum_name">OFF</span>
1370                    <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
1371the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1372<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
1373<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
1374device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
1375a flash unit for this camera device.<wbr/></p></span>
1376                  </li>
1377                  <li>
1378                    <span class="entry_type_enum_name">ON</span>
1379                    <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
1380with no flash control.<wbr/> The application's values for
1381<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1382<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1383<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
1384application has control over the various
1385android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
1386                  </li>
1387                  <li>
1388                    <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
1389                    <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1390the camera's flash unit,<wbr/> firing it in low-light
1391conditions.<wbr/> The flash may be fired during a
1392precapture sequence (triggered by
1393<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
1394for captures for which the
1395<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1396STILL_<wbr/>CAPTURE</p></span>
1397                  </li>
1398                  <li>
1399                    <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
1400                    <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1401the camera's flash unit,<wbr/> always firing it for still
1402captures.<wbr/> The flash may be fired during a precapture
1403sequence (triggered by
1404<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
1405be fired for captures for which the
1406<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1407STILL_<wbr/>CAPTURE</p></span>
1408                  </li>
1409                  <li>
1410                    <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
1411                    <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
1412reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
1413a red eye reduction flash will fire during the
1414precapture sequence.<wbr/></p></span>
1415                  </li>
1416                </ul>
1417
1418            </td> <!-- entry_type -->
1419
1420            <td class="entry_description">
1421              <p>The desired mode for the camera device's
1422auto-exposure routine.<wbr/></p>
1423            </td>
1424
1425            <td class="entry_units">
1426            </td>
1427
1428            <td class="entry_range">
1429              <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
1430            </td>
1431
1432            <td class="entry_tags">
1433              <ul class="entry_tags">
1434                  <li><a href="#tag_BC">BC</a></li>
1435              </ul>
1436            </td>
1437
1438          </tr>
1439          <tr class="entries_header">
1440            <th class="th_details" colspan="5">Details</th>
1441          </tr>
1442          <tr class="entry_cont">
1443            <td class="entry_details" colspan="5">
1444              <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
1445AUTO.<wbr/></p>
1446<p>When set to any of the ON modes,<wbr/> the camera device's
1447auto-exposure routine is enabled,<wbr/> overriding the
1448application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
1449and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1450<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1451<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
1452is selected,<wbr/> the camera device's flash unit controls are
1453also overridden.<wbr/></p>
1454<p>The FLASH modes are only available if the camera device
1455has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
1456<p>If flash TORCH mode is desired,<wbr/> this field must be set to
1457ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
1458<p>When set to any of the ON modes,<wbr/> the values chosen by the
1459camera device auto-exposure routine for the overridden
1460fields for a given capture will be available in its
1461CaptureResult.<wbr/></p>
1462            </td>
1463          </tr>
1464
1465
1466          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1467           <!-- end of entry -->
1468        
1469                
1470          <tr class="entry" id="controls_android.control.aeRegions">
1471            <td class="entry_name" rowspan="3">
1472              android.<wbr/>control.<wbr/>ae<wbr/>Regions
1473            </td>
1474            <td class="entry_type">
1475                <span class="entry_type_name">int32</span>
1476                <span class="entry_type_container">x</span>
1477
1478                <span class="entry_type_array">
1479                  5 x area_count
1480                </span>
1481              <span class="entry_type_visibility"> [public]</span>
1482
1483
1484            </td> <!-- entry_type -->
1485
1486            <td class="entry_description">
1487              <p>List of areas to use for
1488metering.<wbr/></p>
1489            </td>
1490
1491            <td class="entry_units">
1492            </td>
1493
1494            <td class="entry_range">
1495              <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[0]</code></p>
1496            </td>
1497
1498            <td class="entry_tags">
1499              <ul class="entry_tags">
1500                  <li><a href="#tag_BC">BC</a></li>
1501              </ul>
1502            </td>
1503
1504          </tr>
1505          <tr class="entries_header">
1506            <th class="th_details" colspan="5">Details</th>
1507          </tr>
1508          <tr class="entry_cont">
1509            <td class="entry_details" colspan="5">
1510              <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
1511xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
1512specified coordinates.<wbr/></p>
1513<p>The coordinate system is based on the active pixel array,<wbr/>
1514with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
1515(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1516<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
1517bottom-right pixel in the active pixel array.<wbr/> The weight
1518should be nonnegative.<wbr/></p>
1519<p>If all regions have 0 weight,<wbr/> then no specific metering area
1520needs to be used by the camera device.<wbr/> If the metering region is
1521outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the camera device
1522will ignore the sections outside the region and output the
1523used sections in the frame metadata.<wbr/></p>
1524            </td>
1525          </tr>
1526
1527
1528          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1529           <!-- end of entry -->
1530        
1531                
1532          <tr class="entry" id="controls_android.control.aeTargetFpsRange">
1533            <td class="entry_name" rowspan="3">
1534              android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range
1535            </td>
1536            <td class="entry_type">
1537                <span class="entry_type_name">int32</span>
1538                <span class="entry_type_container">x</span>
1539
1540                <span class="entry_type_array">
1541                  2
1542                </span>
1543              <span class="entry_type_visibility"> [public]</span>
1544
1545
1546            </td> <!-- entry_type -->
1547
1548            <td class="entry_description">
1549              <p>Range over which fps can be adjusted to
1550maintain exposure</p>
1551            </td>
1552
1553            <td class="entry_units">
1554            </td>
1555
1556            <td class="entry_range">
1557              <p><a href="#static_android.control.aeAvailableTargetFpsRanges">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges</a></p>
1558            </td>
1559
1560            <td class="entry_tags">
1561              <ul class="entry_tags">
1562                  <li><a href="#tag_BC">BC</a></li>
1563              </ul>
1564            </td>
1565
1566          </tr>
1567          <tr class="entries_header">
1568            <th class="th_details" colspan="5">Details</th>
1569          </tr>
1570          <tr class="entry_cont">
1571            <td class="entry_details" colspan="5">
1572              <p>Only constrains AE algorithm,<wbr/> not manual control
1573of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></p>
1574            </td>
1575          </tr>
1576
1577
1578          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1579           <!-- end of entry -->
1580        
1581                
1582          <tr class="entry" id="controls_android.control.aePrecaptureTrigger">
1583            <td class="entry_name" rowspan="3">
1584              android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger
1585            </td>
1586            <td class="entry_type">
1587                <span class="entry_type_name entry_type_name_enum">byte</span>
1588
1589              <span class="entry_type_visibility"> [public]</span>
1590
1591                <ul class="entry_type_enum">
1592                  <li>
1593                    <span class="entry_type_enum_name">IDLE</span>
1594                    <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
1595                  </li>
1596                  <li>
1597                    <span class="entry_type_enum_name">START</span>
1598                    <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
1599by the camera device.<wbr/> The exact effect of the precapture
1600trigger depends on the current AE mode and state.<wbr/></p></span>
1601                  </li>
1602                </ul>
1603
1604            </td> <!-- entry_type -->
1605
1606            <td class="entry_description">
1607              <p>Whether the camera device will trigger a precapture
1608metering sequence when it processes this request.<wbr/></p>
1609            </td>
1610
1611            <td class="entry_units">
1612            </td>
1613
1614            <td class="entry_range">
1615            </td>
1616
1617            <td class="entry_tags">
1618              <ul class="entry_tags">
1619                  <li><a href="#tag_BC">BC</a></li>
1620              </ul>
1621            </td>
1622
1623          </tr>
1624          <tr class="entries_header">
1625            <th class="th_details" colspan="5">Details</th>
1626          </tr>
1627          <tr class="entry_cont">
1628            <td class="entry_details" colspan="5">
1629              <p>This entry is normally set to IDLE,<wbr/> or is not
1630included at all in the request settings.<wbr/> When included and
1631set to START,<wbr/> the camera device will trigger the autoexposure
1632precapture metering sequence.<wbr/></p>
1633<p>The effect of AE precapture trigger depends on the current
1634AE mode and state; see <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture
1635state transition details.<wbr/></p>
1636            </td>
1637          </tr>
1638
1639
1640          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1641           <!-- end of entry -->
1642        
1643                
1644          <tr class="entry" id="controls_android.control.afMode">
1645            <td class="entry_name" rowspan="3">
1646              android.<wbr/>control.<wbr/>af<wbr/>Mode
1647            </td>
1648            <td class="entry_type">
1649                <span class="entry_type_name entry_type_name_enum">byte</span>
1650
1651              <span class="entry_type_visibility"> [public]</span>
1652
1653                <ul class="entry_type_enum">
1654                  <li>
1655                    <span class="entry_type_enum_name">OFF</span>
1656                    <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
1657<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
1658application</p></span>
1659                  </li>
1660                  <li>
1661                    <span class="entry_type_enum_name">AUTO</span>
1662                    <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
1663<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
1664is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
1665the autofocus trigger action is called.<wbr/> When that trigger
1666is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
1667the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
1668<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
1669and sets the AF state to INACTIVE.<wbr/></p></span>
1670                  </li>
1671                  <li>
1672                    <span class="entry_type_enum_name">MACRO</span>
1673                    <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
1674autofocus trigger action is called.<wbr/></p>
1675<p>When that trigger is activated,<wbr/> AF must transition to
1676ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
1677NOT_<wbr/>FOCUSED).<wbr/>  Triggering cancel AF resets the lens
1678position to default,<wbr/> and sets the AF state to
1679INACTIVE.<wbr/></p></span>
1680                  </li>
1681                  <li>
1682                    <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
1683                    <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1684position continually to attempt to provide a
1685constantly-in-focus image stream.<wbr/></p>
1686<p>The focusing behavior should be suitable for good quality
1687video recording; typically this means slower focus
1688movement and no overshoots.<wbr/> When the AF trigger is not
1689involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
1690and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
1691states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
1692the algorithm should immediately transition into
1693AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1694lens position until a cancel AF trigger is received.<wbr/></p>
1695<p>Once cancel is received,<wbr/> the algorithm should transition
1696back to INACTIVE and resume passive scan.<wbr/> Note that this
1697behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
1698ongoing PASSIVE_<wbr/>SCAN must immediately be
1699canceled.<wbr/></p></span>
1700                  </li>
1701                  <li>
1702                    <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
1703                    <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1704position continually to attempt to provide a
1705constantly-in-focus image stream.<wbr/></p>
1706<p>The focusing behavior should be suitable for still image
1707capture; typically this means focusing as fast as
1708possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
1709algorithm should start in INACTIVE state,<wbr/> and then
1710transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
1711appropriate as it attempts to maintain focus.<wbr/> When the AF
1712trigger is activated,<wbr/> the algorithm should finish its
1713PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
1714AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1715lens position until a cancel AF trigger is received.<wbr/></p>
1716<p>When the AF cancel trigger is activated,<wbr/> the algorithm
1717should transition back to INACTIVE and then act as if it
1718has just been started.<wbr/></p></span>
1719                  </li>
1720                  <li>
1721                    <span class="entry_type_enum_name">EDOF</span>
1722                    <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
1723trigger is ignored,<wbr/> AF state should always be
1724INACTIVE.<wbr/></p></span>
1725                  </li>
1726                </ul>
1727
1728            </td> <!-- entry_type -->
1729
1730            <td class="entry_description">
1731              <p>Whether AF is currently enabled,<wbr/> and what
1732mode it is set to</p>
1733            </td>
1734
1735            <td class="entry_units">
1736            </td>
1737
1738            <td class="entry_range">
1739              <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
1740            </td>
1741
1742            <td class="entry_tags">
1743              <ul class="entry_tags">
1744                  <li><a href="#tag_BC">BC</a></li>
1745              </ul>
1746            </td>
1747
1748          </tr>
1749          <tr class="entries_header">
1750            <th class="th_details" colspan="5">Details</th>
1751          </tr>
1752          <tr class="entry_cont">
1753            <td class="entry_details" colspan="5">
1754              <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO and the lens is not fixed focus
1755(i.<wbr/>e.<wbr/> <code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> &gt; 0</code>).<wbr/></p>
1756<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
1757the camera device will report the current AF status in <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a>
1758in result metadata.<wbr/></p>
1759            </td>
1760          </tr>
1761
1762
1763          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1764           <!-- end of entry -->
1765        
1766                
1767          <tr class="entry" id="controls_android.control.afRegions">
1768            <td class="entry_name" rowspan="3">
1769              android.<wbr/>control.<wbr/>af<wbr/>Regions
1770            </td>
1771            <td class="entry_type">
1772                <span class="entry_type_name">int32</span>
1773                <span class="entry_type_container">x</span>
1774
1775                <span class="entry_type_array">
1776                  5 x area_count
1777                </span>
1778              <span class="entry_type_visibility"> [public]</span>
1779
1780
1781            </td> <!-- entry_type -->
1782
1783            <td class="entry_description">
1784              <p>List of areas to use for focus
1785estimation.<wbr/></p>
1786            </td>
1787
1788            <td class="entry_units">
1789            </td>
1790
1791            <td class="entry_range">
1792              <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[2]</code></p>
1793            </td>
1794
1795            <td class="entry_tags">
1796              <ul class="entry_tags">
1797                  <li><a href="#tag_BC">BC</a></li>
1798              </ul>
1799            </td>
1800
1801          </tr>
1802          <tr class="entries_header">
1803            <th class="th_details" colspan="5">Details</th>
1804          </tr>
1805          <tr class="entry_cont">
1806            <td class="entry_details" colspan="5">
1807              <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
1808xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
1809specified coordinates.<wbr/></p>
1810<p>The coordinate system is based on the active pixel array,<wbr/>
1811with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
1812(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1813<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
1814bottom-right pixel in the active pixel array.<wbr/> The weight
1815should be nonnegative.<wbr/></p>
1816<p>If all regions have 0 weight,<wbr/> then no specific focus area
1817needs to be used by the camera device.<wbr/> If the focusing region is
1818outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the camera device
1819will ignore the sections outside the region and output the
1820used sections in the frame metadata.<wbr/></p>
1821            </td>
1822          </tr>
1823
1824
1825          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1826           <!-- end of entry -->
1827        
1828                
1829          <tr class="entry" id="controls_android.control.afTrigger">
1830            <td class="entry_name" rowspan="3">
1831              android.<wbr/>control.<wbr/>af<wbr/>Trigger
1832            </td>
1833            <td class="entry_type">
1834                <span class="entry_type_name entry_type_name_enum">byte</span>
1835
1836              <span class="entry_type_visibility"> [public]</span>
1837
1838                <ul class="entry_type_enum">
1839                  <li>
1840                    <span class="entry_type_enum_name">IDLE</span>
1841                    <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
1842                  </li>
1843                  <li>
1844                    <span class="entry_type_enum_name">START</span>
1845                    <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
1846                  </li>
1847                  <li>
1848                    <span class="entry_type_enum_name">CANCEL</span>
1849                    <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
1850state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
1851                  </li>
1852                </ul>
1853
1854            </td> <!-- entry_type -->
1855
1856            <td class="entry_description">
1857              <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
1858            </td>
1859
1860            <td class="entry_units">
1861            </td>
1862
1863            <td class="entry_range">
1864            </td>
1865
1866            <td class="entry_tags">
1867              <ul class="entry_tags">
1868                  <li><a href="#tag_BC">BC</a></li>
1869              </ul>
1870            </td>
1871
1872          </tr>
1873          <tr class="entries_header">
1874            <th class="th_details" colspan="5">Details</th>
1875          </tr>
1876          <tr class="entry_cont">
1877            <td class="entry_details" colspan="5">
1878              <p>This entry is normally set to IDLE,<wbr/> or is not
1879included at all in the request settings.<wbr/></p>
1880<p>When included and set to START,<wbr/> the camera device will trigger the
1881autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
1882<p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
1883and return to its initial AF state.<wbr/></p>
1884<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>
1885            </td>
1886          </tr>
1887
1888
1889          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1890           <!-- end of entry -->
1891        
1892                
1893          <tr class="entry" id="controls_android.control.awbLock">
1894            <td class="entry_name" rowspan="3">
1895              android.<wbr/>control.<wbr/>awb<wbr/>Lock
1896            </td>
1897            <td class="entry_type">
1898                <span class="entry_type_name entry_type_name_enum">byte</span>
1899
1900              <span class="entry_type_visibility"> [public as boolean]</span>
1901
1902                <ul class="entry_type_enum">
1903                  <li>
1904                    <span class="entry_type_enum_name">OFF</span>
1905                    <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is disabled; the AWB
1906algorithm is free to update its parameters if in AUTO
1907mode.<wbr/></p></span>
1908                  </li>
1909                  <li>
1910                    <span class="entry_type_enum_name">ON</span>
1911                    <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is enabled; the AWB
1912algorithm must not update its parameters while the lock
1913is active.<wbr/></p></span>
1914                  </li>
1915                </ul>
1916
1917            </td> <!-- entry_type -->
1918
1919            <td class="entry_description">
1920              <p>Whether AWB is currently locked to its
1921latest calculated values.<wbr/></p>
1922            </td>
1923
1924            <td class="entry_units">
1925            </td>
1926
1927            <td class="entry_range">
1928            </td>
1929
1930            <td class="entry_tags">
1931              <ul class="entry_tags">
1932                  <li><a href="#tag_BC">BC</a></li>
1933              </ul>
1934            </td>
1935
1936          </tr>
1937          <tr class="entries_header">
1938            <th class="th_details" colspan="5">Details</th>
1939          </tr>
1940          <tr class="entry_cont">
1941            <td class="entry_details" colspan="5">
1942              <p>Note that AWB lock is only meaningful for AUTO
1943mode; in other modes,<wbr/> AWB is already fixed to a specific
1944setting.<wbr/></p>
1945            </td>
1946          </tr>
1947
1948
1949          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1950           <!-- end of entry -->
1951        
1952                
1953          <tr class="entry" id="controls_android.control.awbMode">
1954            <td class="entry_name" rowspan="3">
1955              android.<wbr/>control.<wbr/>awb<wbr/>Mode
1956            </td>
1957            <td class="entry_type">
1958                <span class="entry_type_name entry_type_name_enum">byte</span>
1959
1960              <span class="entry_type_visibility"> [public]</span>
1961
1962                <ul class="entry_type_enum">
1963                  <li>
1964                    <span class="entry_type_enum_name">OFF</span>
1965                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1966the application-selected color transform matrix
1967(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
1968(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
1969device for manual white balance control.<wbr/></p></span>
1970                  </li>
1971                  <li>
1972                    <span class="entry_type_enum_name">AUTO</span>
1973                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
1974the application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
1975and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/></p></span>
1976                  </li>
1977                  <li>
1978                    <span class="entry_type_enum_name">INCANDESCENT</span>
1979                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1980the camera device uses incandescent light as the assumed scene
1981illumination for white balance.<wbr/> While the exact white balance
1982transforms are up to the camera device,<wbr/> they will approximately
1983match the CIE standard illuminant A.<wbr/></p></span>
1984                  </li>
1985                  <li>
1986                    <span class="entry_type_enum_name">FLUORESCENT</span>
1987                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1988the camera device uses fluorescent light as the assumed scene
1989illumination for white balance.<wbr/> While the exact white balance
1990transforms are up to the camera device,<wbr/> they will approximately
1991match the CIE standard illuminant F2.<wbr/></p></span>
1992                  </li>
1993                  <li>
1994                    <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
1995                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1996the camera device uses warm fluorescent light as the assumed scene
1997illumination for white balance.<wbr/> While the exact white balance
1998transforms are up to the camera device,<wbr/> they will approximately
1999match the CIE standard illuminant F4.<wbr/></p></span>
2000                  </li>
2001                  <li>
2002                    <span class="entry_type_enum_name">DAYLIGHT</span>
2003                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2004the camera device uses daylight light as the assumed scene
2005illumination for white balance.<wbr/> While the exact white balance
2006transforms are up to the camera device,<wbr/> they will approximately
2007match the CIE standard illuminant D65.<wbr/></p></span>
2008                  </li>
2009                  <li>
2010                    <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
2011                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2012the camera device uses cloudy daylight light as the assumed scene
2013illumination for white balance.<wbr/></p></span>
2014                  </li>
2015                  <li>
2016                    <span class="entry_type_enum_name">TWILIGHT</span>
2017                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2018the camera device uses twilight light as the assumed scene
2019illumination for white balance.<wbr/></p></span>
2020                  </li>
2021                  <li>
2022                    <span class="entry_type_enum_name">SHADE</span>
2023                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2024the camera device uses shade light as the assumed scene
2025illumination for white balance.<wbr/></p></span>
2026                  </li>
2027                </ul>
2028
2029            </td> <!-- entry_type -->
2030
2031            <td class="entry_description">
2032              <p>Whether AWB is currently setting the color
2033transform fields,<wbr/> and what its illumination target
2034is.<wbr/></p>
2035            </td>
2036
2037            <td class="entry_units">
2038            </td>
2039
2040            <td class="entry_range">
2041              <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
2042            </td>
2043
2044            <td class="entry_tags">
2045              <ul class="entry_tags">
2046                  <li><a href="#tag_BC">BC</a></li>
2047                  <li><a href="#tag_AWB">AWB</a></li>
2048              </ul>
2049            </td>
2050
2051          </tr>
2052          <tr class="entries_header">
2053            <th class="th_details" colspan="5">Details</th>
2054          </tr>
2055          <tr class="entry_cont">
2056            <td class="entry_details" colspan="5">
2057              <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
2058<p>When set to the ON mode,<wbr/> the camera device's auto white balance
2059routine is enabled,<wbr/> overriding the application's selected
2060<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
2061<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2062<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
2063routine is disabled.<wbr/> The application manually controls the white
2064balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>
2065and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2066<p>When set to any other modes,<wbr/> the camera device's auto white balance
2067routine is disabled.<wbr/> The camera device uses each particular illumination
2068target for white balance adjustment.<wbr/></p>
2069            </td>
2070          </tr>
2071
2072
2073          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2074           <!-- end of entry -->
2075        
2076                
2077          <tr class="entry" id="controls_android.control.awbRegions">
2078            <td class="entry_name" rowspan="3">
2079              android.<wbr/>control.<wbr/>awb<wbr/>Regions
2080            </td>
2081            <td class="entry_type">
2082                <span class="entry_type_name">int32</span>
2083                <span class="entry_type_container">x</span>
2084
2085                <span class="entry_type_array">
2086                  5 x area_count
2087                </span>
2088              <span class="entry_type_visibility"> [public]</span>
2089
2090
2091            </td> <!-- entry_type -->
2092
2093            <td class="entry_description">
2094              <p>List of areas to use for illuminant
2095estimation.<wbr/></p>
2096            </td>
2097
2098            <td class="entry_units">
2099            </td>
2100
2101            <td class="entry_range">
2102              <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[1]</code></p>
2103            </td>
2104
2105            <td class="entry_tags">
2106              <ul class="entry_tags">
2107                  <li><a href="#tag_BC">BC</a></li>
2108              </ul>
2109            </td>
2110
2111          </tr>
2112          <tr class="entries_header">
2113            <th class="th_details" colspan="5">Details</th>
2114          </tr>
2115          <tr class="entry_cont">
2116            <td class="entry_details" colspan="5">
2117              <p>Only used in AUTO mode.<wbr/></p>
2118<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
2119xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
2120specified coordinates.<wbr/></p>
2121<p>The coordinate system is based on the active pixel array,<wbr/>
2122with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
2123(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
2124<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
2125bottom-right pixel in the active pixel array.<wbr/> The weight
2126should be nonnegative.<wbr/></p>
2127<p>If all regions have 0 weight,<wbr/> then no specific auto-white balance (AWB) area
2128needs to be used by the camera device.<wbr/> If the AWB region is
2129outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the camera device
2130will ignore the sections outside the region and output the
2131used sections in the frame metadata.<wbr/></p>
2132            </td>
2133          </tr>
2134
2135
2136          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2137           <!-- end of entry -->
2138        
2139                
2140          <tr class="entry" id="controls_android.control.captureIntent">
2141            <td class="entry_name" rowspan="3">
2142              android.<wbr/>control.<wbr/>capture<wbr/>Intent
2143            </td>
2144            <td class="entry_type">
2145                <span class="entry_type_name entry_type_name_enum">byte</span>
2146
2147              <span class="entry_type_visibility"> [public]</span>
2148
2149                <ul class="entry_type_enum">
2150                  <li>
2151                    <span class="entry_type_enum_name">CUSTOM</span>
2152                    <span class="entry_type_enum_notes"><p>This request doesn't fall into the other
2153categories.<wbr/> Default to preview-like
2154behavior.<wbr/></p></span>
2155                  </li>
2156                  <li>
2157                    <span class="entry_type_enum_name">PREVIEW</span>
2158                    <span class="entry_type_enum_notes"><p>This request is for a preview-like usecase.<wbr/> The
2159precapture trigger may be used to start off a metering
2160w/<wbr/>flash sequence</p></span>
2161                  </li>
2162                  <li>
2163                    <span class="entry_type_enum_name">STILL_CAPTURE</span>
2164                    <span class="entry_type_enum_notes"><p>This request is for a still capture-type
2165usecase.<wbr/></p></span>
2166                  </li>
2167                  <li>
2168                    <span class="entry_type_enum_name">VIDEO_RECORD</span>
2169                    <span class="entry_type_enum_notes"><p>This request is for a video recording
2170usecase.<wbr/></p></span>
2171                  </li>
2172                  <li>
2173                    <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span>
2174                    <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
2175image while recording video) usecase</p></span>
2176                  </li>
2177                  <li>
2178                    <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
2179                    <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
2180application will stream full-resolution images and
2181reprocess one or several later for a final
2182capture</p></span>
2183                  </li>
2184                  <li>
2185                    <span class="entry_type_enum_name">MANUAL</span>
2186                    <span class="entry_type_enum_notes"><p>This request is for manual capture use case where
2187the applications want to directly control the capture parameters
2188(e.<wbr/>g.<wbr/> <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/> <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> etc.<wbr/>).<wbr/></p></span>
2189                  </li>
2190                </ul>
2191
2192            </td> <!-- entry_type -->
2193
2194            <td class="entry_description">
2195              <p>Information to the camera device 3A (auto-exposure,<wbr/>
2196auto-focus,<wbr/> auto-white balance) routines about the purpose
2197of this capture,<wbr/> to help the camera device to decide optimal 3A
2198strategy.<wbr/></p>
2199            </td>
2200
2201            <td class="entry_units">
2202            </td>
2203
2204            <td class="entry_range">
2205              <p>All must be supported except for ZERO_<wbr/>SHUTTER_<wbr/>LAG and MANUAL.<wbr/></p>
2206            </td>
2207
2208            <td class="entry_tags">
2209              <ul class="entry_tags">
2210                  <li><a href="#tag_BC">BC</a></li>
2211              </ul>
2212            </td>
2213
2214          </tr>
2215          <tr class="entries_header">
2216            <th class="th_details" colspan="5">Details</th>
2217          </tr>
2218          <tr class="entry_cont">
2219            <td class="entry_details" colspan="5">
2220              <p>This control (except for MANUAL) is only effective if
2221<code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code> and any 3A routine is active.<wbr/></p>
2222<p>ZERO_<wbr/>SHUTTER_<wbr/>LAG must be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>
2223contains ZSL.<wbr/> MANUAL must be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>
2224contains MANUAL_<wbr/>SENSOR.<wbr/></p>
2225            </td>
2226          </tr>
2227
2228
2229          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2230           <!-- end of entry -->
2231        
2232                
2233          <tr class="entry" id="controls_android.control.effectMode">
2234            <td class="entry_name" rowspan="3">
2235              android.<wbr/>control.<wbr/>effect<wbr/>Mode
2236            </td>
2237            <td class="entry_type">
2238                <span class="entry_type_name entry_type_name_enum">byte</span>
2239
2240              <span class="entry_type_visibility"> [public]</span>
2241
2242                <ul class="entry_type_enum">
2243                  <li>
2244                    <span class="entry_type_enum_name">OFF</span>
2245                    <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
2246                  </li>
2247                  <li>
2248                    <span class="entry_type_enum_name">MONO</span>
2249                    <span class="entry_type_enum_optional">optional</span>
2250                    <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
2251a single color.<wbr/>  This will typically be grayscale.<wbr/></p></span>
2252                  </li>
2253                  <li>
2254                    <span class="entry_type_enum_name">NEGATIVE</span>
2255                    <span class="entry_type_enum_optional">optional</span>
2256                    <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
2257are inverted.<wbr/></p></span>
2258                  </li>
2259                  <li>
2260                    <span class="entry_type_enum_name">SOLARIZE</span>
2261                    <span class="entry_type_enum_optional">optional</span>
2262                    <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
2263image is wholly or partially reversed in
2264tone.<wbr/></p></span>
2265                  </li>
2266                  <li>
2267                    <span class="entry_type_enum_name">SEPIA</span>
2268                    <span class="entry_type_enum_optional">optional</span>
2269                    <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
2270gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
2271                  </li>
2272                  <li>
2273                    <span class="entry_type_enum_name">POSTERIZE</span>
2274                    <span class="entry_type_enum_optional">optional</span>
2275                    <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
2276discrete regions of tone rather than a continuous
2277gradient of tones.<wbr/></p></span>
2278                  </li>
2279                  <li>
2280                    <span class="entry_type_enum_name">WHITEBOARD</span>
2281                    <span class="entry_type_enum_optional">optional</span>
2282                    <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
2283as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
2284                  </li>
2285                  <li>
2286                    <span class="entry_type_enum_name">BLACKBOARD</span>
2287                    <span class="entry_type_enum_optional">optional</span>
2288                    <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
2289as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
2290                  </li>
2291                  <li>
2292                    <span class="entry_type_enum_name">AQUA</span>
2293                    <span class="entry_type_enum_optional">optional</span>
2294                    <span class="entry_type_enum_notes"><p>An "aqua" effect where a blue hue is added to the image.<wbr/></p></span>
2295                  </li>
2296                </ul>
2297
2298            </td> <!-- entry_type -->
2299
2300            <td class="entry_description">
2301              <p>A special color effect to apply.<wbr/></p>
2302            </td>
2303
2304            <td class="entry_units">
2305            </td>
2306
2307            <td class="entry_range">
2308              <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
2309            </td>
2310
2311            <td class="entry_tags">
2312              <ul class="entry_tags">
2313                  <li><a href="#tag_BC">BC</a></li>
2314              </ul>
2315            </td>
2316
2317          </tr>
2318          <tr class="entries_header">
2319            <th class="th_details" colspan="5">Details</th>
2320          </tr>
2321          <tr class="entry_cont">
2322            <td class="entry_details" colspan="5">
2323              <p>When this mode is set,<wbr/> a color effect will be applied
2324to images produced by the camera device.<wbr/> The interpretation
2325and implementation of these color effects is left to the
2326implementor of the camera device,<wbr/> and should not be
2327depended on to be consistent (or present) across all
2328devices.<wbr/></p>
2329<p>A color effect will only be applied if
2330<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2331            </td>
2332          </tr>
2333
2334
2335          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2336           <!-- end of entry -->
2337        
2338                
2339          <tr class="entry" id="controls_android.control.mode">
2340            <td class="entry_name" rowspan="3">
2341              android.<wbr/>control.<wbr/>mode
2342            </td>
2343            <td class="entry_type">
2344                <span class="entry_type_name entry_type_name_enum">byte</span>
2345
2346              <span class="entry_type_visibility"> [public]</span>
2347
2348                <ul class="entry_type_enum">
2349                  <li>
2350                    <span class="entry_type_enum_name">OFF</span>
2351                    <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
2352routines are disabled,<wbr/> no other settings in
2353android.<wbr/>control.<wbr/>* have any effect</p></span>
2354                  </li>
2355                  <li>
2356                    <span class="entry_type_enum_name">AUTO</span>
2357                    <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
2358Manual control of capture parameters is disabled.<wbr/> All
2359controls in android.<wbr/>control.<wbr/>* besides sceneMode take
2360effect</p></span>
2361                  </li>
2362                  <li>
2363                    <span class="entry_type_enum_name">USE_SCENE_MODE</span>
2364                    <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
2365control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
2366controls; the camera device will ignore those settings while
2367USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
2368scene mode).<wbr/> Other control entries are still active.<wbr/>
2369This setting can only be used if scene mode is supported
2370(i.<wbr/>e.<wbr/> <a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a> contain some modes
2371other than DISABLED).<wbr/></p></span>
2372                  </li>
2373                  <li>
2374                    <span class="entry_type_enum_name">OFF_KEEP_STATE</span>
2375                    <span class="entry_type_enum_notes"><p>Same as OFF mode,<wbr/> except that this capture will not be
2376used by camera device background auto-exposure,<wbr/> auto-white balance and
2377auto-focus algorithms to update their statistics.<wbr/></p></span>
2378                  </li>
2379                </ul>
2380
2381            </td> <!-- entry_type -->
2382
2383            <td class="entry_description">
2384              <p>Overall mode of 3A control
2385routines.<wbr/></p>
2386            </td>
2387
2388            <td class="entry_units">
2389            </td>
2390
2391            <td class="entry_range">
2392              <p>all must be supported</p>
2393            </td>
2394
2395            <td class="entry_tags">
2396              <ul class="entry_tags">
2397                  <li><a href="#tag_BC">BC</a></li>
2398              </ul>
2399            </td>
2400
2401          </tr>
2402          <tr class="entries_header">
2403            <th class="th_details" colspan="5">Details</th>
2404          </tr>
2405          <tr class="entry_cont">
2406            <td class="entry_details" colspan="5">
2407              <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
2408by the camera device is disabled.<wbr/> The application must set the fields for
2409capture parameters itself.<wbr/></p>
2410<p>When set to AUTO,<wbr/> the individual algorithm controls in
2411android.<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>
2412<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
2413android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
2414one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
2415as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
2416<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
2417<p>When set to OFF_<wbr/>KEEP_<wbr/>STATE,<wbr/> it is similar to OFF mode,<wbr/> the only difference
2418is that this frame will not be used by camera device background 3A statistics
2419update,<wbr/> as if this frame is never captured.<wbr/> This mode can be used in the scenario
2420where the application doesn't want a 3A manual control capture to affect
2421the subsequent auto 3A capture results.<wbr/></p>
2422            </td>
2423          </tr>
2424
2425
2426          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2427           <!-- end of entry -->
2428        
2429                
2430          <tr class="entry" id="controls_android.control.sceneMode">
2431            <td class="entry_name" rowspan="5">
2432              android.<wbr/>control.<wbr/>scene<wbr/>Mode
2433            </td>
2434            <td class="entry_type">
2435                <span class="entry_type_name entry_type_name_enum">byte</span>
2436
2437              <span class="entry_type_visibility"> [public]</span>
2438
2439                <ul class="entry_type_enum">
2440                  <li>
2441                    <span class="entry_type_enum_name">DISABLED</span>
2442                    <span class="entry_type_enum_value">0</span>
2443                    <span class="entry_type_enum_notes"><p>Indicates that no scene modes are set for a given capture request.<wbr/></p></span>
2444                  </li>
2445                  <li>
2446                    <span class="entry_type_enum_name">FACE_PRIORITY</span>
2447                    <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
2448detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
2449auto-exposure routines.<wbr/> If face detection statistics are
2450disabled (i.<wbr/>e.<wbr/> <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> is set to OFF),<wbr/>
2451this should still operate correctly (but will not return
2452face detection statistics to the framework).<wbr/></p>
2453<p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2454<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>
2455remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
2456                  </li>
2457                  <li>
2458                    <span class="entry_type_enum_name">ACTION</span>
2459                    <span class="entry_type_enum_optional">optional</span>
2460                    <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/>
2461Similar to SPORTS.<wbr/></p></span>
2462                  </li>
2463                  <li>
2464                    <span class="entry_type_enum_name">PORTRAIT</span>
2465                    <span class="entry_type_enum_optional">optional</span>
2466                    <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
2467                  </li>
2468                  <li>
2469                    <span class="entry_type_enum_name">LANDSCAPE</span>
2470                    <span class="entry_type_enum_optional">optional</span>
2471                    <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
2472                  </li>
2473                  <li>
2474                    <span class="entry_type_enum_name">NIGHT</span>
2475                    <span class="entry_type_enum_optional">optional</span>
2476                    <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
2477                  </li>
2478                  <li>
2479                    <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
2480                    <span class="entry_type_enum_optional">optional</span>
2481                    <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
2482settings.<wbr/></p></span>
2483                  </li>
2484                  <li>
2485                    <span class="entry_type_enum_name">THEATRE</span>
2486                    <span class="entry_type_enum_optional">optional</span>
2487                    <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
2488remain off.<wbr/></p></span>
2489                  </li>
2490                  <li>
2491                    <span class="entry_type_enum_name">BEACH</span>
2492                    <span class="entry_type_enum_optional">optional</span>
2493                    <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
2494                  </li>
2495                  <li>
2496                    <span class="entry_type_enum_name">SNOW</span>
2497                    <span class="entry_type_enum_optional">optional</span>
2498                    <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
2499                  </li>
2500                  <li>
2501                    <span class="entry_type_enum_name">SUNSET</span>
2502                    <span class="entry_type_enum_optional">optional</span>
2503                    <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
2504                  </li>
2505                  <li>
2506                    <span class="entry_type_enum_name">STEADYPHOTO</span>
2507                    <span class="entry_type_enum_optional">optional</span>
2508                    <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
2509device motion (for example: due to hand shake).<wbr/></p></span>
2510                  </li>
2511                  <li>
2512                    <span class="entry_type_enum_name">FIREWORKS</span>
2513                    <span class="entry_type_enum_optional">optional</span>
2514                    <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
2515                  </li>
2516                  <li>
2517                    <span class="entry_type_enum_name">SPORTS</span>
2518                    <span class="entry_type_enum_optional">optional</span>
2519                    <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/>
2520Similar to ACTION.<wbr/></p></span>
2521                  </li>
2522                  <li>
2523                    <span class="entry_type_enum_name">PARTY</span>
2524                    <span class="entry_type_enum_optional">optional</span>
2525                    <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
2526people.<wbr/></p></span>
2527                  </li>
2528                  <li>
2529                    <span class="entry_type_enum_name">CANDLELIGHT</span>
2530                    <span class="entry_type_enum_optional">optional</span>
2531                    <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
2532is a flame.<wbr/></p></span>
2533                  </li>
2534                  <li>
2535                    <span class="entry_type_enum_name">BARCODE</span>
2536                    <span class="entry_type_enum_optional">optional</span>
2537                    <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
2538for use by camera applications that wish to read the
2539barcode value.<wbr/></p></span>
2540                  </li>
2541                </ul>
2542
2543            </td> <!-- entry_type -->
2544
2545            <td class="entry_description">
2546              <p>A camera mode optimized for conditions typical in a particular
2547capture setting.<wbr/></p>
2548            </td>
2549
2550            <td class="entry_units">
2551            </td>
2552
2553            <td class="entry_range">
2554              <p><a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a></p>
2555            </td>
2556
2557            <td class="entry_tags">
2558              <ul class="entry_tags">
2559                  <li><a href="#tag_BC">BC</a></li>
2560              </ul>
2561            </td>
2562
2563          </tr>
2564          <tr class="entries_header">
2565            <th class="th_details" colspan="5">Details</th>
2566          </tr>
2567          <tr class="entry_cont">
2568            <td class="entry_details" colspan="5">
2569              <p>This is the mode that that is active when
2570<code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code>.<wbr/> Aside from FACE_<wbr/>PRIORITY,<wbr/>
2571these modes will disable <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2572<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> while in use.<wbr/></p>
2573<p>The interpretation and implementation of these scene modes is left
2574to the implementor of the camera device.<wbr/> Their behavior will not be
2575consistent across all devices,<wbr/> and any given device may only implement
2576a subset of these modes.<wbr/></p>
2577            </td>
2578          </tr>
2579
2580          <tr class="entries_header">
2581            <th class="th_details" colspan="5">HAL Implementation Details</th>
2582          </tr>
2583          <tr class="entry_cont">
2584            <td class="entry_details" colspan="5">
2585              <p>HAL implementations that include scene modes are expected to provide
2586the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2587<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> in
2588<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
2589            </td>
2590          </tr>
2591
2592          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2593           <!-- end of entry -->
2594        
2595                
2596          <tr class="entry" id="controls_android.control.videoStabilizationMode">
2597            <td class="entry_name" rowspan="3">
2598              android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
2599            </td>
2600            <td class="entry_type">
2601                <span class="entry_type_name entry_type_name_enum">byte</span>
2602
2603              <span class="entry_type_visibility"> [public as boolean]</span>
2604
2605                <ul class="entry_type_enum">
2606                  <li>
2607                    <span class="entry_type_enum_name">OFF</span>
2608                  </li>
2609                  <li>
2610                    <span class="entry_type_enum_name">ON</span>
2611                  </li>
2612                </ul>
2613
2614            </td> <!-- entry_type -->
2615
2616            <td class="entry_description">
2617              <p>Whether video stabilization is
2618active</p>
2619            </td>
2620
2621            <td class="entry_units">
2622            </td>
2623
2624            <td class="entry_range">
2625            </td>
2626
2627            <td class="entry_tags">
2628              <ul class="entry_tags">
2629                  <li><a href="#tag_BC">BC</a></li>
2630              </ul>
2631            </td>
2632
2633          </tr>
2634          <tr class="entries_header">
2635            <th class="th_details" colspan="5">Details</th>
2636          </tr>
2637          <tr class="entry_cont">
2638            <td class="entry_details" colspan="5">
2639              <p>If enabled,<wbr/> video stabilization can modify the
2640<a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> to keep the video stream
2641stabilized</p>
2642            </td>
2643          </tr>
2644
2645
2646          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2647           <!-- end of entry -->
2648        
2649        
2650
2651      <!-- end of kind -->
2652      </tbody>
2653      <tr><td colspan="6" class="kind">static</td></tr>
2654
2655      <thead class="entries_header">
2656        <tr>
2657          <th class="th_name">Property Name</th>
2658          <th class="th_type">Type</th>
2659          <th class="th_description">Description</th>
2660          <th class="th_units">Units</th>
2661          <th class="th_range">Range</th>
2662          <th class="th_tags">Tags</th>
2663        </tr>
2664      </thead>
2665
2666      <tbody>
2667
2668        
2669
2670        
2671
2672        
2673
2674        
2675
2676                
2677          <tr class="entry" id="static_android.control.aeAvailableAntibandingModes">
2678            <td class="entry_name" rowspan="3">
2679              android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes
2680            </td>
2681            <td class="entry_type">
2682                <span class="entry_type_name">byte</span>
2683                <span class="entry_type_container">x</span>
2684
2685                <span class="entry_type_array">
2686                  n
2687                </span>
2688              <span class="entry_type_visibility"> [public]</span>
2689                <div class="entry_type_notes">list of enums</div>
2690
2691
2692            </td> <!-- entry_type -->
2693
2694            <td class="entry_description">
2695              <p>The set of auto-exposure antibanding modes that are
2696supported by this camera device.<wbr/></p>
2697            </td>
2698
2699            <td class="entry_units">
2700            </td>
2701
2702            <td class="entry_range">
2703            </td>
2704
2705            <td class="entry_tags">
2706            </td>
2707
2708          </tr>
2709          <tr class="entries_header">
2710            <th class="th_details" colspan="5">Details</th>
2711          </tr>
2712          <tr class="entry_cont">
2713            <td class="entry_details" colspan="5">
2714              <p>Not all of the auto-exposure anti-banding modes may be
2715supported by a given camera device.<wbr/> This field lists the
2716valid anti-banding modes that the application may request
2717for this camera device; they must include AUTO.<wbr/></p>
2718            </td>
2719          </tr>
2720
2721
2722          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2723           <!-- end of entry -->
2724        
2725                
2726          <tr class="entry" id="static_android.control.aeAvailableModes">
2727            <td class="entry_name" rowspan="3">
2728              android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes
2729            </td>
2730            <td class="entry_type">
2731                <span class="entry_type_name">byte</span>
2732                <span class="entry_type_container">x</span>
2733
2734                <span class="entry_type_array">
2735                  n
2736                </span>
2737              <span class="entry_type_visibility"> [public]</span>
2738                <div class="entry_type_notes">list of enums</div>
2739
2740
2741            </td> <!-- entry_type -->
2742
2743            <td class="entry_description">
2744              <p>The set of auto-exposure modes that are supported by this
2745camera device.<wbr/></p>
2746            </td>
2747
2748            <td class="entry_units">
2749            </td>
2750
2751            <td class="entry_range">
2752            </td>
2753
2754            <td class="entry_tags">
2755              <ul class="entry_tags">
2756                  <li><a href="#tag_BC">BC</a></li>
2757              </ul>
2758            </td>
2759
2760          </tr>
2761          <tr class="entries_header">
2762            <th class="th_details" colspan="5">Details</th>
2763          </tr>
2764          <tr class="entry_cont">
2765            <td class="entry_details" colspan="5">
2766              <p>Not all the auto-exposure modes may be supported by a
2767given camera device,<wbr/> especially if no flash unit is
2768available.<wbr/> This entry lists the valid modes for
2769<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> for this camera device.<wbr/></p>
2770<p>All camera devices support ON,<wbr/> and all camera devices with
2771flash units support ON_<wbr/>AUTO_<wbr/>FLASH and
2772ON_<wbr/>ALWAYS_<wbr/>FLASH.<wbr/></p>
2773<p>FULL mode camera devices always support OFF mode,<wbr/>
2774which enables application control of camera exposure time,<wbr/>
2775sensitivity,<wbr/> and frame duration.<wbr/></p>
2776            </td>
2777          </tr>
2778
2779
2780          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2781           <!-- end of entry -->
2782        
2783                
2784          <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges">
2785            <td class="entry_name" rowspan="1">
2786              android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges
2787            </td>
2788            <td class="entry_type">
2789                <span class="entry_type_name">int32</span>
2790                <span class="entry_type_container">x</span>
2791
2792                <span class="entry_type_array">
2793                  2 x n
2794                </span>
2795              <span class="entry_type_visibility"> [public]</span>
2796                <div class="entry_type_notes">list of pairs of frame rates</div>
2797
2798
2799            </td> <!-- entry_type -->
2800
2801            <td class="entry_description">
2802              <p>List of frame rate ranges supported by the
2803AE algorithm/<wbr/>hardware</p>
2804            </td>
2805
2806            <td class="entry_units">
2807            </td>
2808
2809            <td class="entry_range">
2810            </td>
2811
2812            <td class="entry_tags">
2813            </td>
2814
2815          </tr>
2816
2817
2818          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2819           <!-- end of entry -->
2820        
2821                
2822          <tr class="entry" id="static_android.control.aeCompensationRange">
2823            <td class="entry_name" rowspan="1">
2824              android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range
2825            </td>
2826            <td class="entry_type">
2827                <span class="entry_type_name">int32</span>
2828                <span class="entry_type_container">x</span>
2829
2830                <span class="entry_type_array">
2831                  2
2832                </span>
2833              <span class="entry_type_visibility"> [public]</span>
2834
2835
2836            </td> <!-- entry_type -->
2837
2838            <td class="entry_description">
2839              <p>Maximum and minimum exposure compensation
2840setting,<wbr/> in counts of
2841<a href="#static_android.control.aeCompensationStep">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step</a>.<wbr/></p>
2842            </td>
2843
2844            <td class="entry_units">
2845            </td>
2846
2847            <td class="entry_range">
2848              <p>At least (-2,<wbr/>2)/<wbr/>(exp compensation step
2849size)</p>
2850            </td>
2851
2852            <td class="entry_tags">
2853              <ul class="entry_tags">
2854                  <li><a href="#tag_BC">BC</a></li>
2855              </ul>
2856            </td>
2857
2858          </tr>
2859
2860
2861          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2862           <!-- end of entry -->
2863        
2864                
2865          <tr class="entry" id="static_android.control.aeCompensationStep">
2866            <td class="entry_name" rowspan="1">
2867              android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step
2868            </td>
2869            <td class="entry_type">
2870                <span class="entry_type_name">rational</span>
2871
2872              <span class="entry_type_visibility"> [public]</span>
2873
2874
2875            </td> <!-- entry_type -->
2876
2877            <td class="entry_description">
2878              <p>Smallest step by which exposure compensation
2879can be changed</p>
2880            </td>
2881
2882            <td class="entry_units">
2883            </td>
2884
2885            <td class="entry_range">
2886              <p>&lt;= 1/<wbr/>2</p>
2887            </td>
2888
2889            <td class="entry_tags">
2890              <ul class="entry_tags">
2891                  <li><a href="#tag_BC">BC</a></li>
2892              </ul>
2893            </td>
2894
2895          </tr>
2896
2897
2898          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2899           <!-- end of entry -->
2900        
2901                
2902          <tr class="entry" id="static_android.control.afAvailableModes">
2903            <td class="entry_name" rowspan="3">
2904              android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes
2905            </td>
2906            <td class="entry_type">
2907                <span class="entry_type_name">byte</span>
2908                <span class="entry_type_container">x</span>
2909
2910                <span class="entry_type_array">
2911                  n
2912                </span>
2913              <span class="entry_type_visibility"> [public]</span>
2914                <div class="entry_type_notes">List of enums</div>
2915
2916
2917            </td> <!-- entry_type -->
2918
2919            <td class="entry_description">
2920              <p>List of AF modes that can be
2921selected with <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
2922            </td>
2923
2924            <td class="entry_units">
2925            </td>
2926
2927            <td class="entry_range">
2928            </td>
2929
2930            <td class="entry_tags">
2931              <ul class="entry_tags">
2932                  <li><a href="#tag_BC">BC</a></li>
2933              </ul>
2934            </td>
2935
2936          </tr>
2937          <tr class="entries_header">
2938            <th class="th_details" colspan="5">Details</th>
2939          </tr>
2940          <tr class="entry_cont">
2941            <td class="entry_details" colspan="5">
2942              <p>Not all the auto-focus modes may be supported by a
2943given camera device.<wbr/> This entry lists the valid modes for
2944<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> for this camera device.<wbr/></p>
2945<p>All camera devices will support OFF mode,<wbr/> and all camera devices with
2946adjustable 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>)
2947will support AUTO mode.<wbr/></p>
2948            </td>
2949          </tr>
2950
2951
2952          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2953           <!-- end of entry -->
2954        
2955                
2956          <tr class="entry" id="static_android.control.availableEffects">
2957            <td class="entry_name" rowspan="3">
2958              android.<wbr/>control.<wbr/>available<wbr/>Effects
2959            </td>
2960            <td class="entry_type">
2961                <span class="entry_type_name">byte</span>
2962                <span class="entry_type_container">x</span>
2963
2964                <span class="entry_type_array">
2965                  n
2966                </span>
2967              <span class="entry_type_visibility"> [public]</span>
2968                <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>effect<wbr/>Mode).<wbr/></div>
2969
2970
2971            </td> <!-- entry_type -->
2972
2973            <td class="entry_description">
2974              <p>List containing the subset of color effects
2975specified in <a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a> that is supported by
2976this device.<wbr/></p>
2977            </td>
2978
2979            <td class="entry_units">
2980            </td>
2981
2982            <td class="entry_range">
2983              <p>Any subset of enums from those specified in
2984<a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a>.<wbr/>  OFF must be included in any subset.<wbr/></p>
2985            </td>
2986
2987            <td class="entry_tags">
2988              <ul class="entry_tags">
2989                  <li><a href="#tag_BC">BC</a></li>
2990              </ul>
2991            </td>
2992
2993          </tr>
2994          <tr class="entries_header">
2995            <th class="th_details" colspan="5">Details</th>
2996          </tr>
2997          <tr class="entry_cont">
2998            <td class="entry_details" colspan="5">
2999              <p>This list contains the color effect modes that can be applied to
3000images produced by the camera device.<wbr/> Only modes that have
3001been fully implemented for the current device may be included here.<wbr/>
3002Implementations are not expected to be consistent across all devices.<wbr/>
3003If no color effect modes are available for a device,<wbr/> this should
3004simply be set to OFF.<wbr/></p>
3005<p>A color effect will only be applied if
3006<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
3007            </td>
3008          </tr>
3009
3010
3011          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3012           <!-- end of entry -->
3013        
3014                
3015          <tr class="entry" id="static_android.control.availableSceneModes">
3016            <td class="entry_name" rowspan="3">
3017              android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes
3018            </td>
3019            <td class="entry_type">
3020                <span class="entry_type_name">byte</span>
3021                <span class="entry_type_container">x</span>
3022
3023                <span class="entry_type_array">
3024                  n
3025                </span>
3026              <span class="entry_type_visibility"> [public]</span>
3027                <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>scene<wbr/>Mode).<wbr/></div>
3028
3029
3030            </td> <!-- entry_type -->
3031
3032            <td class="entry_description">
3033              <p>List containing a subset of scene modes
3034specified in <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a>.<wbr/></p>
3035            </td>
3036
3037            <td class="entry_units">
3038            </td>
3039
3040            <td class="entry_range">
3041              <p>Any subset of the enums specified in <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a>
3042not including DISABLED,<wbr/> or solely DISABLED if no
3043scene modes are available.<wbr/> FACE_<wbr/>PRIORITY must be included
3044if face detection is supported (i.<wbr/>e.<wbr/><code><a href="#static_android.statistics.info.maxFaceCount">android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count</a> &gt; 0</code>).<wbr/></p>
3045            </td>
3046
3047            <td class="entry_tags">
3048              <ul class="entry_tags">
3049                  <li><a href="#tag_BC">BC</a></li>
3050              </ul>
3051            </td>
3052
3053          </tr>
3054          <tr class="entries_header">
3055            <th class="th_details" colspan="5">Details</th>
3056          </tr>
3057          <tr class="entry_cont">
3058            <td class="entry_details" colspan="5">
3059              <p>This list contains scene modes that can be set for the camera device.<wbr/>
3060Only scene modes that have been fully implemented for the
3061camera device may be included here.<wbr/> Implementations are not expected
3062to be consistent across all devices.<wbr/> If no scene modes are supported
3063by the camera device,<wbr/> this will be set to <code>[DISABLED]</code>.<wbr/></p>
3064            </td>
3065          </tr>
3066
3067
3068          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3069           <!-- end of entry -->
3070        
3071                
3072          <tr class="entry" id="static_android.control.availableVideoStabilizationModes">
3073            <td class="entry_name" rowspan="1">
3074              android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes
3075            </td>
3076            <td class="entry_type">
3077                <span class="entry_type_name">byte</span>
3078                <span class="entry_type_container">x</span>
3079
3080                <span class="entry_type_array">
3081                  n
3082                </span>
3083              <span class="entry_type_visibility"> [public]</span>
3084                <div class="entry_type_notes">List of enums.<wbr/></div>
3085
3086
3087            </td> <!-- entry_type -->
3088
3089            <td class="entry_description">
3090              <p>List of video stabilization modes that can
3091be supported</p>
3092            </td>
3093
3094            <td class="entry_units">
3095            </td>
3096
3097            <td class="entry_range">
3098              <p>OFF must be included</p>
3099            </td>
3100
3101            <td class="entry_tags">
3102              <ul class="entry_tags">
3103                  <li><a href="#tag_BC">BC</a></li>
3104              </ul>
3105            </td>
3106
3107          </tr>
3108
3109
3110          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3111           <!-- end of entry -->
3112        
3113                
3114          <tr class="entry" id="static_android.control.awbAvailableModes">
3115            <td class="entry_name" rowspan="3">
3116              android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes
3117            </td>
3118            <td class="entry_type">
3119                <span class="entry_type_name">byte</span>
3120                <span class="entry_type_container">x</span>
3121
3122                <span class="entry_type_array">
3123                  n
3124                </span>
3125              <span class="entry_type_visibility"> [public]</span>
3126                <div class="entry_type_notes">List of enums</div>
3127
3128
3129            </td> <!-- entry_type -->
3130
3131            <td class="entry_description">
3132              <p>The set of auto-white-balance modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>)
3133that are supported by this camera device.<wbr/></p>
3134            </td>
3135
3136            <td class="entry_units">
3137            </td>
3138
3139            <td class="entry_range">
3140            </td>
3141
3142            <td class="entry_tags">
3143              <ul class="entry_tags">
3144                  <li><a href="#tag_BC">BC</a></li>
3145              </ul>
3146            </td>
3147
3148          </tr>
3149          <tr class="entries_header">
3150            <th class="th_details" colspan="5">Details</th>
3151          </tr>
3152          <tr class="entry_cont">
3153            <td class="entry_details" colspan="5">
3154              <p>Not all the auto-white-balance modes may be supported by a
3155given camera device.<wbr/> This entry lists the valid modes for
3156<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> for this camera device.<wbr/></p>
3157<p>All camera devices will support ON mode.<wbr/></p>
3158<p>FULL mode camera devices will always support OFF mode,<wbr/>
3159which enables application control of white balance,<wbr/> by using
3160<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>
3161            </td>
3162          </tr>
3163
3164
3165          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3166           <!-- end of entry -->
3167        
3168                
3169          <tr class="entry" id="static_android.control.maxRegions">
3170            <td class="entry_name" rowspan="1">
3171              android.<wbr/>control.<wbr/>max<wbr/>Regions
3172            </td>
3173            <td class="entry_type">
3174                <span class="entry_type_name">int32</span>
3175                <span class="entry_type_container">x</span>
3176
3177                <span class="entry_type_array">
3178                  3
3179                </span>
3180              <span class="entry_type_visibility"> [public]</span>
3181
3182
3183            </td> <!-- entry_type -->
3184
3185            <td class="entry_description">
3186              <p>List of the maximum number of regions that can be used for metering in
3187auto-exposure (AE),<wbr/> auto-white balance (AWB),<wbr/> and auto-focus (AF);
3188this corresponds to the the maximum number of elements in
3189<a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a>,<wbr/> <a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a>,<wbr/>
3190and <a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/></p>
3191            </td>
3192
3193            <td class="entry_units">
3194            </td>
3195
3196            <td class="entry_range">
3197              <p>Value must be &gt;= 0 for each element.<wbr/> For full-capability devices
3198this value must be &gt;= 1 for AE and AF.<wbr/> The order of the elements is:
3199<code>(AE,<wbr/> AWB,<wbr/> AF)</code>.<wbr/></p>
3200            </td>
3201
3202            <td class="entry_tags">
3203              <ul class="entry_tags">
3204                  <li><a href="#tag_BC">BC</a></li>
3205              </ul>
3206            </td>
3207
3208          </tr>
3209
3210
3211          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3212           <!-- end of entry -->
3213        
3214                
3215          <tr class="entry" id="static_android.control.sceneModeOverrides">
3216            <td class="entry_name" rowspan="5">
3217              android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides
3218            </td>
3219            <td class="entry_type">
3220                <span class="entry_type_name">byte</span>
3221                <span class="entry_type_container">x</span>
3222
3223                <span class="entry_type_array">
3224                  3 x length(availableSceneModes)
3225                </span>
3226              <span class="entry_type_visibility"> [system]</span>
3227
3228
3229            </td> <!-- entry_type -->
3230
3231            <td class="entry_description">
3232              <p>Ordered list of auto-exposure,<wbr/> auto-white balance,<wbr/> and auto-focus
3233settings to use with each available scene mode.<wbr/></p>
3234            </td>
3235
3236            <td class="entry_units">
3237            </td>
3238
3239            <td class="entry_range">
3240              <p>For each available scene mode,<wbr/> the list must contain three
3241entries containing the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3242<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> values used
3243by the camera device.<wbr/> The entry order is <code>(aeMode,<wbr/> awbMode,<wbr/> afMode)</code>
3244where aeMode has the lowest index position.<wbr/></p>
3245            </td>
3246
3247            <td class="entry_tags">
3248              <ul class="entry_tags">
3249                  <li><a href="#tag_BC">BC</a></li>
3250              </ul>
3251            </td>
3252
3253          </tr>
3254          <tr class="entries_header">
3255            <th class="th_details" colspan="5">Details</th>
3256          </tr>
3257          <tr class="entry_cont">
3258            <td class="entry_details" colspan="5">
3259              <p>When a scene mode is enabled,<wbr/> the camera device is expected
3260to override <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/> <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/>
3261and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> with its preferred settings for
3262that scene mode.<wbr/></p>
3263<p>The order of this list matches that of availableSceneModes,<wbr/>
3264with 3 entries for each mode.<wbr/>  The overrides listed
3265for FACE_<wbr/>PRIORITY are ignored,<wbr/> since for that
3266mode the application-set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3267<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> values are
3268used instead,<wbr/> matching the behavior when <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>
3269is set to AUTO.<wbr/> It is recommended that the FACE_<wbr/>PRIORITY
3270overrides should be set to 0.<wbr/></p>
3271<p>For example,<wbr/> if availableSceneModes contains
3272<code>(FACE_<wbr/>PRIORITY,<wbr/> ACTION,<wbr/> NIGHT)</code>,<wbr/>  then the camera framework
3273expects sceneModeOverrides to have 9 entries formatted like:
3274<code>(0,<wbr/> 0,<wbr/> 0,<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> AUTO,<wbr/> CONTINUOUS_<wbr/>PICTURE,<wbr/>
3275ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> INCANDESCENT,<wbr/> AUTO)</code>.<wbr/></p>
3276            </td>
3277          </tr>
3278
3279          <tr class="entries_header">
3280            <th class="th_details" colspan="5">HAL Implementation Details</th>
3281          </tr>
3282          <tr class="entry_cont">
3283            <td class="entry_details" colspan="5">
3284              <p>To maintain backward compatibility,<wbr/> this list will be made available
3285in the static metadata of the camera service.<wbr/>  The camera service will
3286use these values to set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3287<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> when using a scene
3288mode other than FACE_<wbr/>PRIORITY.<wbr/></p>
3289            </td>
3290          </tr>
3291
3292          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3293           <!-- end of entry -->
3294        
3295        
3296
3297      <!-- end of kind -->
3298      </tbody>
3299      <tr><td colspan="6" class="kind">dynamic</td></tr>
3300
3301      <thead class="entries_header">
3302        <tr>
3303          <th class="th_name">Property Name</th>
3304          <th class="th_type">Type</th>
3305          <th class="th_description">Description</th>
3306          <th class="th_units">Units</th>
3307          <th class="th_range">Range</th>
3308          <th class="th_tags">Tags</th>
3309        </tr>
3310      </thead>
3311
3312      <tbody>
3313
3314        
3315
3316        
3317
3318        
3319
3320        
3321
3322                
3323          <tr class="entry" id="dynamic_android.control.aePrecaptureId">
3324            <td class="entry_name" rowspan="3">
3325              android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Id
3326            </td>
3327            <td class="entry_type">
3328                <span class="entry_type_name">int32</span>
3329
3330              <span class="entry_type_visibility"> [hidden]</span>
3331
3332
3333            </td> <!-- entry_type -->
3334
3335            <td class="entry_description">
3336              <p>The ID sent with the latest
3337CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING call</p>
3338            </td>
3339
3340            <td class="entry_units">
3341            </td>
3342
3343            <td class="entry_range">
3344              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
3345            </td>
3346
3347            <td class="entry_tags">
3348            </td>
3349
3350          </tr>
3351          <tr class="entries_header">
3352            <th class="th_details" colspan="5">Details</th>
3353          </tr>
3354          <tr class="entry_cont">
3355            <td class="entry_details" colspan="5">
3356              <p>Must be 0 if no
3357CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING trigger received yet
3358by HAL.<wbr/> Always updated even if AE algorithm ignores the
3359trigger</p>
3360            </td>
3361          </tr>
3362
3363
3364          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3365           <!-- end of entry -->
3366        
3367                
3368          <tr class="entry" id="dynamic_android.control.aeMode">
3369            <td class="entry_name" rowspan="3">
3370              android.<wbr/>control.<wbr/>ae<wbr/>Mode
3371            </td>
3372            <td class="entry_type">
3373                <span class="entry_type_name entry_type_name_enum">byte</span>
3374
3375              <span class="entry_type_visibility"> [public]</span>
3376
3377                <ul class="entry_type_enum">
3378                  <li>
3379                    <span class="entry_type_enum_name">OFF</span>
3380                    <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
3381the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3382<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
3383<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
3384device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
3385a flash unit for this camera device.<wbr/></p></span>
3386                  </li>
3387                  <li>
3388                    <span class="entry_type_enum_name">ON</span>
3389                    <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
3390with no flash control.<wbr/> The application's values for
3391<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3392<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3393<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
3394application has control over the various
3395android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
3396                  </li>
3397                  <li>
3398                    <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
3399                    <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3400the camera's flash unit,<wbr/> firing it in low-light
3401conditions.<wbr/> The flash may be fired during a
3402precapture sequence (triggered by
3403<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
3404for captures for which the
3405<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3406STILL_<wbr/>CAPTURE</p></span>
3407                  </li>
3408                  <li>
3409                    <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
3410                    <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3411the camera's flash unit,<wbr/> always firing it for still
3412captures.<wbr/> The flash may be fired during a precapture
3413sequence (triggered by
3414<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
3415be fired for captures for which the
3416<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3417STILL_<wbr/>CAPTURE</p></span>
3418                  </li>
3419                  <li>
3420                    <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
3421                    <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
3422reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
3423a red eye reduction flash will fire during the
3424precapture sequence.<wbr/></p></span>
3425                  </li>
3426                </ul>
3427
3428            </td> <!-- entry_type -->
3429
3430            <td class="entry_description">
3431              <p>The desired mode for the camera device's
3432auto-exposure routine.<wbr/></p>
3433            </td>
3434
3435            <td class="entry_units">
3436            </td>
3437
3438            <td class="entry_range">
3439              <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
3440            </td>
3441
3442            <td class="entry_tags">
3443              <ul class="entry_tags">
3444                  <li><a href="#tag_BC">BC</a></li>
3445              </ul>
3446            </td>
3447
3448          </tr>
3449          <tr class="entries_header">
3450            <th class="th_details" colspan="5">Details</th>
3451          </tr>
3452          <tr class="entry_cont">
3453            <td class="entry_details" colspan="5">
3454              <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
3455AUTO.<wbr/></p>
3456<p>When set to any of the ON modes,<wbr/> the camera device's
3457auto-exposure routine is enabled,<wbr/> overriding the
3458application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
3459and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3460<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3461<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
3462is selected,<wbr/> the camera device's flash unit controls are
3463also overridden.<wbr/></p>
3464<p>The FLASH modes are only available if the camera device
3465has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
3466<p>If flash TORCH mode is desired,<wbr/> this field must be set to
3467ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
3468<p>When set to any of the ON modes,<wbr/> the values chosen by the
3469camera device auto-exposure routine for the overridden
3470fields for a given capture will be available in its
3471CaptureResult.<wbr/></p>
3472            </td>
3473          </tr>
3474
3475
3476          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3477           <!-- end of entry -->
3478        
3479                
3480          <tr class="entry" id="dynamic_android.control.aeRegions">
3481            <td class="entry_name" rowspan="3">
3482              android.<wbr/>control.<wbr/>ae<wbr/>Regions
3483            </td>
3484            <td class="entry_type">
3485                <span class="entry_type_name">int32</span>
3486                <span class="entry_type_container">x</span>
3487
3488                <span class="entry_type_array">
3489                  5 x area_count
3490                </span>
3491              <span class="entry_type_visibility"> [public]</span>
3492
3493
3494            </td> <!-- entry_type -->
3495
3496            <td class="entry_description">
3497              <p>List of areas to use for
3498metering.<wbr/></p>
3499            </td>
3500
3501            <td class="entry_units">
3502            </td>
3503
3504            <td class="entry_range">
3505              <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[0]</code></p>
3506            </td>
3507
3508            <td class="entry_tags">
3509              <ul class="entry_tags">
3510                  <li><a href="#tag_BC">BC</a></li>
3511              </ul>
3512            </td>
3513
3514          </tr>
3515          <tr class="entries_header">
3516            <th class="th_details" colspan="5">Details</th>
3517          </tr>
3518          <tr class="entry_cont">
3519            <td class="entry_details" colspan="5">
3520              <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
3521xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
3522specified coordinates.<wbr/></p>
3523<p>The coordinate system is based on the active pixel array,<wbr/>
3524with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
3525(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3526<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
3527bottom-right pixel in the active pixel array.<wbr/> The weight
3528should be nonnegative.<wbr/></p>
3529<p>If all regions have 0 weight,<wbr/> then no specific metering area
3530needs to be used by the camera device.<wbr/> If the metering region is
3531outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the camera device
3532will ignore the sections outside the region and output the
3533used sections in the frame metadata.<wbr/></p>
3534            </td>
3535          </tr>
3536
3537
3538          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3539           <!-- end of entry -->
3540        
3541                
3542          <tr class="entry" id="dynamic_android.control.aeState">
3543            <td class="entry_name" rowspan="3">
3544              android.<wbr/>control.<wbr/>ae<wbr/>State
3545            </td>
3546            <td class="entry_type">
3547                <span class="entry_type_name entry_type_name_enum">byte</span>
3548
3549              <span class="entry_type_visibility"> [public]</span>
3550
3551                <ul class="entry_type_enum">
3552                  <li>
3553                    <span class="entry_type_enum_name">INACTIVE</span>
3554                    <span class="entry_type_enum_notes"><p>AE is off or recently reset.<wbr/> When a camera device is opened,<wbr/> it starts in
3555this state.<wbr/> This is a transient state,<wbr/> the camera device may skip reporting
3556this state in capture result.<wbr/></p></span>
3557                  </li>
3558                  <li>
3559                    <span class="entry_type_enum_name">SEARCHING</span>
3560                    <span class="entry_type_enum_notes"><p>AE doesn't yet have a good set of control values
3561for the current scene.<wbr/> This is a transient state,<wbr/> the camera device may skip
3562reporting this state in capture result.<wbr/></p></span>
3563                  </li>
3564                  <li>
3565                    <span class="entry_type_enum_name">CONVERGED</span>
3566                    <span class="entry_type_enum_notes"><p>AE has a good set of control values for the
3567current scene.<wbr/></p></span>
3568                  </li>
3569                  <li>
3570                    <span class="entry_type_enum_name">LOCKED</span>
3571                    <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
3572                  </li>
3573                  <li>
3574                    <span class="entry_type_enum_name">FLASH_REQUIRED</span>
3575                    <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
3576needs to be fired for good quality still
3577capture.<wbr/></p></span>
3578                  </li>
3579                  <li>
3580                    <span class="entry_type_enum_name">PRECAPTURE</span>
3581                    <span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence
3582(through the <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> START),<wbr/>
3583and is currently executing it.<wbr/> Once PRECAPTURE
3584completes,<wbr/> AE will transition to CONVERGED or
3585FLASH_<wbr/>REQUIRED as appropriate.<wbr/> This is a transient state,<wbr/> the
3586camera device may skip reporting this state in capture result.<wbr/></p></span>
3587                  </li>
3588                </ul>
3589
3590            </td> <!-- entry_type -->
3591
3592            <td class="entry_description">
3593              <p>Current state of AE algorithm</p>
3594            </td>
3595
3596            <td class="entry_units">
3597            </td>
3598
3599            <td class="entry_range">
3600            </td>
3601
3602            <td class="entry_tags">
3603            </td>
3604
3605          </tr>
3606          <tr class="entries_header">
3607            <th class="th_details" colspan="5">Details</th>
3608          </tr>
3609          <tr class="entry_cont">
3610            <td class="entry_details" colspan="5">
3611              <p>Switching between or enabling AE modes (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>) always
3612resets the AE state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3613or <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
3614the algorithm states to INACTIVE.<wbr/></p>
3615<p>The camera device can do several state transitions between two results,<wbr/> if it is
3616allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3617seen in a result.<wbr/></p>
3618<p>The state in the result is the state for this image (in sync with this image): if
3619AE state becomes CONVERGED,<wbr/> then the image data associated with this result should
3620be good to use.<wbr/></p>
3621<p>Below are state transition tables for different AE modes.<wbr/></p>
3622<table>
3623<thead>
3624<tr>
3625<th align="center">State</th>
3626<th align="center">Transition Cause</th>
3627<th align="center">New State</th>
3628<th align="center">Notes</th>
3629</tr>
3630</thead>
3631<tbody>
3632<tr>
3633<td align="center">INACTIVE</td>
3634<td align="center"></td>
3635<td align="center">INACTIVE</td>
3636<td align="center">Camera device auto exposure algorithm is disabled</td>
3637</tr>
3638</tbody>
3639</table>
3640<p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON_<wbr/>*:</p>
3641<table>
3642<thead>
3643<tr>
3644<th align="center">State</th>
3645<th align="center">Transition Cause</th>
3646<th align="center">New State</th>
3647<th align="center">Notes</th>
3648</tr>
3649</thead>
3650<tbody>
3651<tr>
3652<td align="center">INACTIVE</td>
3653<td align="center">Camera device initiates AE scan</td>
3654<td align="center">SEARCHING</td>
3655<td align="center">Values changing</td>
3656</tr>
3657<tr>
3658<td align="center">INACTIVE</td>
3659<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3660<td align="center">LOCKED</td>
3661<td align="center">Values locked</td>
3662</tr>
3663<tr>
3664<td align="center">SEARCHING</td>
3665<td align="center">Camera device finishes AE scan</td>
3666<td align="center">CONVERGED</td>
3667<td align="center">Good values,<wbr/> not changing</td>
3668</tr>
3669<tr>
3670<td align="center">SEARCHING</td>
3671<td align="center">Camera device finishes AE scan</td>
3672<td align="center">FLASH_<wbr/>REQUIRED</td>
3673<td align="center">Converged but too dark w/<wbr/>o flash</td>
3674</tr>
3675<tr>
3676<td align="center">SEARCHING</td>
3677<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3678<td align="center">LOCKED</td>
3679<td align="center">Values locked</td>
3680</tr>
3681<tr>
3682<td align="center">CONVERGED</td>
3683<td align="center">Camera device initiates AE scan</td>
3684<td align="center">SEARCHING</td>
3685<td align="center">Values changing</td>
3686</tr>
3687<tr>
3688<td align="center">CONVERGED</td>
3689<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3690<td align="center">LOCKED</td>
3691<td align="center">Values locked</td>
3692</tr>
3693<tr>
3694<td align="center">FLASH_<wbr/>REQUIRED</td>
3695<td align="center">Camera device initiates AE scan</td>
3696<td align="center">SEARCHING</td>
3697<td align="center">Values changing</td>
3698</tr>
3699<tr>
3700<td align="center">FLASH_<wbr/>REQUIRED</td>
3701<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3702<td align="center">LOCKED</td>
3703<td align="center">Values locked</td>
3704</tr>
3705<tr>
3706<td align="center">LOCKED</td>
3707<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3708<td align="center">SEARCHING</td>
3709<td align="center">Values not good after unlock</td>
3710</tr>
3711<tr>
3712<td align="center">LOCKED</td>
3713<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3714<td align="center">CONVERGED</td>
3715<td align="center">Values good after unlock</td>
3716</tr>
3717<tr>
3718<td align="center">LOCKED</td>
3719<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3720<td align="center">FLASH_<wbr/>REQUIRED</td>
3721<td align="center">Exposure good,<wbr/> but too dark</td>
3722</tr>
3723<tr>
3724<td align="center">PRECAPTURE</td>
3725<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3726<td align="center">CONVERGED</td>
3727<td align="center">Ready for high-quality capture</td>
3728</tr>
3729<tr>
3730<td align="center">PRECAPTURE</td>
3731<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3732<td align="center">LOCKED</td>
3733<td align="center">Ready for high-quality capture</td>
3734</tr>
3735<tr>
3736<td align="center">Any state</td>
3737<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
3738<td align="center">PRECAPTURE</td>
3739<td align="center">Start AE precapture metering sequence</td>
3740</tr>
3741</tbody>
3742</table>
3743<p>For the above table,<wbr/> the camera device may skip reporting any state changes that happen
3744without application intervention (i.<wbr/>e.<wbr/> mode switch,<wbr/> trigger,<wbr/> locking).<wbr/> Any state that
3745can be skipped in that manner is called a transient state.<wbr/></p>
3746<p>For example,<wbr/> for above AE modes (AE_<wbr/>MODE_<wbr/>ON_<wbr/>*),<wbr/> in addition to the state transitions
3747listed in above table,<wbr/> it is also legal for the camera device to skip one or more
3748transient states between two results.<wbr/> See below table for examples:</p>
3749<table>
3750<thead>
3751<tr>
3752<th align="center">State</th>
3753<th align="center">Transition Cause</th>
3754<th align="center">New State</th>
3755<th align="center">Notes</th>
3756</tr>
3757</thead>
3758<tbody>
3759<tr>
3760<td align="center">INACTIVE</td>
3761<td align="center">Camera device finished AE scan</td>
3762<td align="center">CONVERGED</td>
3763<td align="center">Values are already good,<wbr/> transient states are skipped by camera device.<wbr/></td>
3764</tr>
3765<tr>
3766<td align="center">Any state</td>
3767<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START,<wbr/> sequence done</td>
3768<td align="center">FLASH_<wbr/>REQUIRED</td>
3769<td align="center">Converged but too dark w/<wbr/>o flash after a precapture sequence,<wbr/> transient states are skipped by camera device.<wbr/></td>
3770</tr>
3771<tr>
3772<td align="center">Any state</td>
3773<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START,<wbr/> sequence done</td>
3774<td align="center">CONVERGED</td>
3775<td align="center">Converged after a precapture sequence,<wbr/> transient states are skipped by camera device.<wbr/></td>
3776</tr>
3777<tr>
3778<td align="center">CONVERGED</td>
3779<td align="center">Camera device finished AE scan</td>
3780<td align="center">FLASH_<wbr/>REQUIRED</td>
3781<td align="center">Converged but too dark w/<wbr/>o flash after a new scan,<wbr/> transient states are skipped by camera device.<wbr/></td>
3782</tr>
3783<tr>
3784<td align="center">FLASH_<wbr/>REQUIRED</td>
3785<td align="center">Camera device finished AE scan</td>
3786<td align="center">CONVERGED</td>
3787<td align="center">Converged after a new scan,<wbr/> transient states are skipped by camera device.<wbr/></td>
3788</tr>
3789</tbody>
3790</table>
3791            </td>
3792          </tr>
3793
3794
3795          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3796           <!-- end of entry -->
3797        
3798                
3799          <tr class="entry" id="dynamic_android.control.afMode">
3800            <td class="entry_name" rowspan="3">
3801              android.<wbr/>control.<wbr/>af<wbr/>Mode
3802            </td>
3803            <td class="entry_type">
3804                <span class="entry_type_name entry_type_name_enum">byte</span>
3805
3806              <span class="entry_type_visibility"> [public]</span>
3807
3808                <ul class="entry_type_enum">
3809                  <li>
3810                    <span class="entry_type_enum_name">OFF</span>
3811                    <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
3812<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
3813application</p></span>
3814                  </li>
3815                  <li>
3816                    <span class="entry_type_enum_name">AUTO</span>
3817                    <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
3818<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
3819is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
3820the autofocus trigger action is called.<wbr/> When that trigger
3821is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
3822the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
3823<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
3824and sets the AF state to INACTIVE.<wbr/></p></span>
3825                  </li>
3826                  <li>
3827                    <span class="entry_type_enum_name">MACRO</span>
3828                    <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
3829autofocus trigger action is called.<wbr/></p>
3830<p>When that trigger is activated,<wbr/> AF must transition to
3831ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
3832NOT_<wbr/>FOCUSED).<wbr/>  Triggering cancel AF resets the lens
3833position to default,<wbr/> and sets the AF state to
3834INACTIVE.<wbr/></p></span>
3835                  </li>
3836                  <li>
3837                    <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
3838                    <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3839position continually to attempt to provide a
3840constantly-in-focus image stream.<wbr/></p>
3841<p>The focusing behavior should be suitable for good quality
3842video recording; typically this means slower focus
3843movement and no overshoots.<wbr/> When the AF trigger is not
3844involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
3845and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
3846states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
3847the algorithm should immediately transition into
3848AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3849lens position until a cancel AF trigger is received.<wbr/></p>
3850<p>Once cancel is received,<wbr/> the algorithm should transition
3851back to INACTIVE and resume passive scan.<wbr/> Note that this
3852behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
3853ongoing PASSIVE_<wbr/>SCAN must immediately be
3854canceled.<wbr/></p></span>
3855                  </li>
3856                  <li>
3857                    <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
3858                    <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3859position continually to attempt to provide a
3860constantly-in-focus image stream.<wbr/></p>
3861<p>The focusing behavior should be suitable for still image
3862capture; typically this means focusing as fast as
3863possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
3864algorithm should start in INACTIVE state,<wbr/> and then
3865transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
3866appropriate as it attempts to maintain focus.<wbr/> When the AF
3867trigger is activated,<wbr/> the algorithm should finish its
3868PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
3869AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3870lens position until a cancel AF trigger is received.<wbr/></p>
3871<p>When the AF cancel trigger is activated,<wbr/> the algorithm
3872should transition back to INACTIVE and then act as if it
3873has just been started.<wbr/></p></span>
3874                  </li>
3875                  <li>
3876                    <span class="entry_type_enum_name">EDOF</span>
3877                    <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
3878trigger is ignored,<wbr/> AF state should always be
3879INACTIVE.<wbr/></p></span>
3880                  </li>
3881                </ul>
3882
3883            </td> <!-- entry_type -->
3884
3885            <td class="entry_description">
3886              <p>Whether AF is currently enabled,<wbr/> and what
3887mode it is set to</p>
3888            </td>
3889
3890            <td class="entry_units">
3891            </td>
3892
3893            <td class="entry_range">
3894              <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
3895            </td>
3896
3897            <td class="entry_tags">
3898              <ul class="entry_tags">
3899                  <li><a href="#tag_BC">BC</a></li>
3900              </ul>
3901            </td>
3902
3903          </tr>
3904          <tr class="entries_header">
3905            <th class="th_details" colspan="5">Details</th>
3906          </tr>
3907          <tr class="entry_cont">
3908            <td class="entry_details" colspan="5">
3909              <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO and the lens is not fixed focus
3910(i.<wbr/>e.<wbr/> <code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> &gt; 0</code>).<wbr/></p>
3911<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
3912the camera device will report the current AF status in <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a>
3913in result metadata.<wbr/></p>
3914            </td>
3915          </tr>
3916
3917
3918          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3919           <!-- end of entry -->
3920        
3921                
3922          <tr class="entry" id="dynamic_android.control.afRegions">
3923            <td class="entry_name" rowspan="3">
3924              android.<wbr/>control.<wbr/>af<wbr/>Regions
3925            </td>
3926            <td class="entry_type">
3927                <span class="entry_type_name">int32</span>
3928                <span class="entry_type_container">x</span>
3929
3930                <span class="entry_type_array">
3931                  5 x area_count
3932                </span>
3933              <span class="entry_type_visibility"> [public]</span>
3934
3935
3936            </td> <!-- entry_type -->
3937
3938            <td class="entry_description">
3939              <p>List of areas to use for focus
3940estimation.<wbr/></p>
3941            </td>
3942
3943            <td class="entry_units">
3944            </td>
3945
3946            <td class="entry_range">
3947              <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[2]</code></p>
3948            </td>
3949
3950            <td class="entry_tags">
3951              <ul class="entry_tags">
3952                  <li><a href="#tag_BC">BC</a></li>
3953              </ul>
3954            </td>
3955
3956          </tr>
3957          <tr class="entries_header">
3958            <th class="th_details" colspan="5">Details</th>
3959          </tr>
3960          <tr class="entry_cont">
3961            <td class="entry_details" colspan="5">
3962              <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
3963xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
3964specified coordinates.<wbr/></p>
3965<p>The coordinate system is based on the active pixel array,<wbr/>
3966with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
3967(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3968<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
3969bottom-right pixel in the active pixel array.<wbr/> The weight
3970should be nonnegative.<wbr/></p>
3971<p>If all regions have 0 weight,<wbr/> then no specific focus area
3972needs to be used by the camera device.<wbr/> If the focusing region is
3973outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the camera device
3974will ignore the sections outside the region and output the
3975used sections in the frame metadata.<wbr/></p>
3976            </td>
3977          </tr>
3978
3979
3980          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3981           <!-- end of entry -->
3982        
3983                
3984          <tr class="entry" id="dynamic_android.control.afState">
3985            <td class="entry_name" rowspan="3">
3986              android.<wbr/>control.<wbr/>af<wbr/>State
3987            </td>
3988            <td class="entry_type">
3989                <span class="entry_type_name entry_type_name_enum">byte</span>
3990
3991              <span class="entry_type_visibility"> [public]</span>
3992
3993                <ul class="entry_type_enum">
3994                  <li>
3995                    <span class="entry_type_enum_name">INACTIVE</span>
3996                    <span class="entry_type_enum_notes"><p>AF off or has not yet tried to scan/<wbr/>been asked
3997to scan.<wbr/>  When a camera device is opened,<wbr/> it starts in
3998this state.<wbr/> This is a transient state,<wbr/> the camera device may
3999skip reporting this state in capture result.<wbr/></p></span>
4000                  </li>
4001                  <li>
4002                    <span class="entry_type_enum_name">PASSIVE_SCAN</span>
4003                    <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF is
4004currently doing an AF scan initiated by a continuous
4005autofocus mode.<wbr/> This is a transient state,<wbr/> the camera device may
4006skip reporting this state in capture result.<wbr/></p></span>
4007                  </li>
4008                  <li>
4009                    <span class="entry_type_enum_name">PASSIVE_FOCUSED</span>
4010                    <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF currently
4011believes it is in focus,<wbr/> but may restart scanning at
4012any time.<wbr/> This is a transient state,<wbr/> the camera device may skip
4013reporting this state in capture result.<wbr/></p></span>
4014                  </li>
4015                  <li>
4016                    <span class="entry_type_enum_name">ACTIVE_SCAN</span>
4017                    <span class="entry_type_enum_notes"><p>if AUTO or MACRO modes are supported.<wbr/> AF is doing
4018an AF scan because it was triggered by AF trigger.<wbr/> This is a
4019transient state,<wbr/> the camera device may skip reporting
4020this state in capture result.<wbr/></p></span>
4021                  </li>
4022                  <li>
4023                    <span class="entry_type_enum_name">FOCUSED_LOCKED</span>
4024                    <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF
4025believes it is focused correctly and is
4026locked.<wbr/></p></span>
4027                  </li>
4028                  <li>
4029                    <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span>
4030                    <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF has
4031failed to focus successfully and is
4032locked.<wbr/></p></span>
4033                  </li>
4034                  <li>
4035                    <span class="entry_type_enum_name">PASSIVE_UNFOCUSED</span>
4036                    <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF finished a
4037passive scan without finding focus,<wbr/> and may restart
4038scanning at any time.<wbr/> This is a transient state,<wbr/> the camera
4039device may skip reporting this state in capture result.<wbr/></p></span>
4040                  </li>
4041                </ul>
4042
4043            </td> <!-- entry_type -->
4044
4045            <td class="entry_description">
4046              <p>Current state of AF algorithm.<wbr/></p>
4047            </td>
4048
4049            <td class="entry_units">
4050            </td>
4051
4052            <td class="entry_range">
4053            </td>
4054
4055            <td class="entry_tags">
4056            </td>
4057
4058          </tr>
4059          <tr class="entries_header">
4060            <th class="th_details" colspan="5">Details</th>
4061          </tr>
4062          <tr class="entry_cont">
4063            <td class="entry_details" colspan="5">
4064              <p>Switching between or enabling AF modes (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) always
4065resets the AF state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
4066or <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
4067the algorithm states to INACTIVE.<wbr/></p>
4068<p>The camera device can do several state transitions between two results,<wbr/> if it is
4069allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
4070seen in a result.<wbr/></p>
4071<p>The state in the result is the state for this image (in sync with this image): if
4072AF state becomes FOCUSED,<wbr/> then the image data associated with this result should
4073be sharp.<wbr/></p>
4074<p>Below are state transition tables for different AF modes.<wbr/></p>
4075<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>
4076<table>
4077<thead>
4078<tr>
4079<th align="center">State</th>
4080<th align="center">Transition Cause</th>
4081<th align="center">New State</th>
4082<th align="center">Notes</th>
4083</tr>
4084</thead>
4085<tbody>
4086<tr>
4087<td align="center">INACTIVE</td>
4088<td align="center"></td>
4089<td align="center">INACTIVE</td>
4090<td align="center">Never changes</td>
4091</tr>
4092</tbody>
4093</table>
4094<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>
4095<table>
4096<thead>
4097<tr>
4098<th align="center">State</th>
4099<th align="center">Transition Cause</th>
4100<th align="center">New State</th>
4101<th align="center">Notes</th>
4102</tr>
4103</thead>
4104<tbody>
4105<tr>
4106<td align="center">INACTIVE</td>
4107<td align="center">AF_<wbr/>TRIGGER</td>
4108<td align="center">ACTIVE_<wbr/>SCAN</td>
4109<td align="center">Start AF sweep,<wbr/> Lens now moving</td>
4110</tr>
4111<tr>
4112<td align="center">ACTIVE_<wbr/>SCAN</td>
4113<td align="center">AF sweep done</td>
4114<td align="center">FOCUSED_<wbr/>LOCKED</td>
4115<td align="center">Focused,<wbr/> Lens now locked</td>
4116</tr>
4117<tr>
4118<td align="center">ACTIVE_<wbr/>SCAN</td>
4119<td align="center">AF sweep done</td>
4120<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4121<td align="center">Not focused,<wbr/> Lens now locked</td>
4122</tr>
4123<tr>
4124<td align="center">ACTIVE_<wbr/>SCAN</td>
4125<td align="center">AF_<wbr/>CANCEL</td>
4126<td align="center">INACTIVE</td>
4127<td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
4128</tr>
4129<tr>
4130<td align="center">FOCUSED_<wbr/>LOCKED</td>
4131<td align="center">AF_<wbr/>CANCEL</td>
4132<td align="center">INACTIVE</td>
4133<td align="center">Cancel/<wbr/>reset AF</td>
4134</tr>
4135<tr>
4136<td align="center">FOCUSED_<wbr/>LOCKED</td>
4137<td align="center">AF_<wbr/>TRIGGER</td>
4138<td align="center">ACTIVE_<wbr/>SCAN</td>
4139<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4140</tr>
4141<tr>
4142<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4143<td align="center">AF_<wbr/>CANCEL</td>
4144<td align="center">INACTIVE</td>
4145<td align="center">Cancel/<wbr/>reset AF</td>
4146</tr>
4147<tr>
4148<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4149<td align="center">AF_<wbr/>TRIGGER</td>
4150<td align="center">ACTIVE_<wbr/>SCAN</td>
4151<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4152</tr>
4153<tr>
4154<td align="center">Any state</td>
4155<td align="center">Mode change</td>
4156<td align="center">INACTIVE</td>
4157<td align="center"></td>
4158</tr>
4159</tbody>
4160</table>
4161<p>For the above table,<wbr/> the camera device may skip reporting any state changes that happen
4162without application intervention (i.<wbr/>e.<wbr/> mode switch,<wbr/> trigger,<wbr/> locking).<wbr/> Any state that
4163can be skipped in that manner is called a transient state.<wbr/></p>
4164<p>For example,<wbr/> for these AF modes (AF_<wbr/>MODE_<wbr/>AUTO and AF_<wbr/>MODE_<wbr/>MACRO),<wbr/> in addition to the
4165state transitions listed in above table,<wbr/> it is also legal for the camera device to skip
4166one or more transient states between two results.<wbr/> See below table for examples:</p>
4167<table>
4168<thead>
4169<tr>
4170<th align="center">State</th>
4171<th align="center">Transition Cause</th>
4172<th align="center">New State</th>
4173<th align="center">Notes</th>
4174</tr>
4175</thead>
4176<tbody>
4177<tr>
4178<td align="center">INACTIVE</td>
4179<td align="center">AF_<wbr/>TRIGGER</td>
4180<td align="center">FOCUSED_<wbr/>LOCKED</td>
4181<td align="center">Focus is already good or good after a scan,<wbr/> lens is now locked.<wbr/></td>
4182</tr>
4183<tr>
4184<td align="center">INACTIVE</td>
4185<td align="center">AF_<wbr/>TRIGGER</td>
4186<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4187<td align="center">Focus failed after a scan,<wbr/> lens is now locked.<wbr/></td>
4188</tr>
4189<tr>
4190<td align="center">FOCUSED_<wbr/>LOCKED</td>
4191<td align="center">AF_<wbr/>TRIGGER</td>
4192<td align="center">FOCUSED_<wbr/>LOCKED</td>
4193<td align="center">Focus is already good or good after a scan,<wbr/> lens is now locked.<wbr/></td>
4194</tr>
4195<tr>
4196<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4197<td align="center">AF_<wbr/>TRIGGER</td>
4198<td align="center">FOCUSED_<wbr/>LOCKED</td>
4199<td align="center">Focus is good after a scan,<wbr/> lens is not locked.<wbr/></td>
4200</tr>
4201</tbody>
4202</table>
4203<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>
4204<table>
4205<thead>
4206<tr>
4207<th align="center">State</th>
4208<th align="center">Transition Cause</th>
4209<th align="center">New State</th>
4210<th align="center">Notes</th>
4211</tr>
4212</thead>
4213<tbody>
4214<tr>
4215<td align="center">INACTIVE</td>
4216<td align="center">Camera device initiates new scan</td>
4217<td align="center">PASSIVE_<wbr/>SCAN</td>
4218<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4219</tr>
4220<tr>
4221<td align="center">INACTIVE</td>
4222<td align="center">AF_<wbr/>TRIGGER</td>
4223<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4224<td align="center">AF state query,<wbr/> Lens now locked</td>
4225</tr>
4226<tr>
4227<td align="center">PASSIVE_<wbr/>SCAN</td>
4228<td align="center">Camera device completes current scan</td>
4229<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4230<td align="center">End AF scan,<wbr/> Lens now locked</td>
4231</tr>
4232<tr>
4233<td align="center">PASSIVE_<wbr/>SCAN</td>
4234<td align="center">Camera device fails current scan</td>
4235<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4236<td align="center">End AF scan,<wbr/> Lens now locked</td>
4237</tr>
4238<tr>
4239<td align="center">PASSIVE_<wbr/>SCAN</td>
4240<td align="center">AF_<wbr/>TRIGGER</td>
4241<td align="center">FOCUSED_<wbr/>LOCKED</td>
4242<td align="center">Immediate trans.<wbr/> If focus is good,<wbr/> Lens now locked</td>
4243</tr>
4244<tr>
4245<td align="center">PASSIVE_<wbr/>SCAN</td>
4246<td align="center">AF_<wbr/>TRIGGER</td>
4247<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4248<td align="center">Immediate trans.<wbr/> if focus is bad,<wbr/> Lens now locked</td>
4249</tr>
4250<tr>
4251<td align="center">PASSIVE_<wbr/>SCAN</td>
4252<td align="center">AF_<wbr/>CANCEL</td>
4253<td align="center">INACTIVE</td>
4254<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4255</tr>
4256<tr>
4257<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4258<td align="center">Camera device initiates new scan</td>
4259<td align="center">PASSIVE_<wbr/>SCAN</td>
4260<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4261</tr>
4262<tr>
4263<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4264<td align="center">Camera device initiates new scan</td>
4265<td align="center">PASSIVE_<wbr/>SCAN</td>
4266<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4267</tr>
4268<tr>
4269<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4270<td align="center">AF_<wbr/>TRIGGER</td>
4271<td align="center">FOCUSED_<wbr/>LOCKED</td>
4272<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4273</tr>
4274<tr>
4275<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4276<td align="center">AF_<wbr/>TRIGGER</td>
4277<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4278<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4279</tr>
4280<tr>
4281<td align="center">FOCUSED_<wbr/>LOCKED</td>
4282<td align="center">AF_<wbr/>TRIGGER</td>
4283<td align="center">FOCUSED_<wbr/>LOCKED</td>
4284<td align="center">No effect</td>
4285</tr>
4286<tr>
4287<td align="center">FOCUSED_<wbr/>LOCKED</td>
4288<td align="center">AF_<wbr/>CANCEL</td>
4289<td align="center">INACTIVE</td>
4290<td align="center">Restart AF scan</td>
4291</tr>
4292<tr>
4293<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4294<td align="center">AF_<wbr/>TRIGGER</td>
4295<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4296<td align="center">No effect</td>
4297</tr>
4298<tr>
4299<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4300<td align="center">AF_<wbr/>CANCEL</td>
4301<td align="center">INACTIVE</td>
4302<td align="center">Restart AF scan</td>
4303</tr>
4304</tbody>
4305</table>
4306<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>
4307<table>
4308<thead>
4309<tr>
4310<th align="center">State</th>
4311<th align="center">Transition Cause</th>
4312<th align="center">New State</th>
4313<th align="center">Notes</th>
4314</tr>
4315</thead>
4316<tbody>
4317<tr>
4318<td align="center">INACTIVE</td>
4319<td align="center">Camera device initiates new scan</td>
4320<td align="center">PASSIVE_<wbr/>SCAN</td>
4321<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4322</tr>
4323<tr>
4324<td align="center">INACTIVE</td>
4325<td align="center">AF_<wbr/>TRIGGER</td>
4326<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4327<td align="center">AF state query,<wbr/> Lens now locked</td>
4328</tr>
4329<tr>
4330<td align="center">PASSIVE_<wbr/>SCAN</td>
4331<td align="center">Camera device completes current scan</td>
4332<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4333<td align="center">End AF scan,<wbr/> Lens now locked</td>
4334</tr>
4335<tr>
4336<td align="center">PASSIVE_<wbr/>SCAN</td>
4337<td align="center">Camera device fails current scan</td>
4338<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4339<td align="center">End AF scan,<wbr/> Lens now locked</td>
4340</tr>
4341<tr>
4342<td align="center">PASSIVE_<wbr/>SCAN</td>
4343<td align="center">AF_<wbr/>TRIGGER</td>
4344<td align="center">FOCUSED_<wbr/>LOCKED</td>
4345<td align="center">Eventual trans.<wbr/> once focus good,<wbr/> Lens now locked</td>
4346</tr>
4347<tr>
4348<td align="center">PASSIVE_<wbr/>SCAN</td>
4349<td align="center">AF_<wbr/>TRIGGER</td>
4350<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4351<td align="center">Eventual trans.<wbr/> if cannot focus,<wbr/> Lens now locked</td>
4352</tr>
4353<tr>
4354<td align="center">PASSIVE_<wbr/>SCAN</td>
4355<td align="center">AF_<wbr/>CANCEL</td>
4356<td align="center">INACTIVE</td>
4357<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4358</tr>
4359<tr>
4360<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4361<td align="center">Camera device initiates new scan</td>
4362<td align="center">PASSIVE_<wbr/>SCAN</td>
4363<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4364</tr>
4365<tr>
4366<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4367<td align="center">Camera device initiates new scan</td>
4368<td align="center">PASSIVE_<wbr/>SCAN</td>
4369<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4370</tr>
4371<tr>
4372<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4373<td align="center">AF_<wbr/>TRIGGER</td>
4374<td align="center">FOCUSED_<wbr/>LOCKED</td>
4375<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4376</tr>
4377<tr>
4378<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4379<td align="center">AF_<wbr/>TRIGGER</td>
4380<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4381<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4382</tr>
4383<tr>
4384<td align="center">FOCUSED_<wbr/>LOCKED</td>
4385<td align="center">AF_<wbr/>TRIGGER</td>
4386<td align="center">FOCUSED_<wbr/>LOCKED</td>
4387<td align="center">No effect</td>
4388</tr>
4389<tr>
4390<td align="center">FOCUSED_<wbr/>LOCKED</td>
4391<td align="center">AF_<wbr/>CANCEL</td>
4392<td align="center">INACTIVE</td>
4393<td align="center">Restart AF scan</td>
4394</tr>
4395<tr>
4396<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4397<td align="center">AF_<wbr/>TRIGGER</td>
4398<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4399<td align="center">No effect</td>
4400</tr>
4401<tr>
4402<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4403<td align="center">AF_<wbr/>CANCEL</td>
4404<td align="center">INACTIVE</td>
4405<td align="center">Restart AF scan</td>
4406</tr>
4407</tbody>
4408</table>
4409<p>When switch between AF_<wbr/>MODE_<wbr/>CONTINUOUS_<wbr/>* (CAF modes) and AF_<wbr/>MODE_<wbr/>AUTO/<wbr/>AF_<wbr/>MODE_<wbr/>MACRO
4410(AUTO modes),<wbr/> the initial INACTIVE or PASSIVE_<wbr/>SCAN states may be skipped by the
4411camera device.<wbr/> When a trigger is included in a mode switch request,<wbr/> the trigger
4412will be evaluated in the context of the new mode in the request.<wbr/>
4413See below table for examples:</p>
4414<table>
4415<thead>
4416<tr>
4417<th align="center">State</th>
4418<th align="center">Transition Cause</th>
4419<th align="center">New State</th>
4420<th align="center">Notes</th>
4421</tr>
4422</thead>
4423<tbody>
4424<tr>
4425<td align="center">any state</td>
4426<td align="center">CAF--&gt;AUTO mode switch</td>
4427<td align="center">INACTIVE</td>
4428<td align="center">Mode switch without trigger,<wbr/> initial state must be INACTIVE</td>
4429</tr>
4430<tr>
4431<td align="center">any state</td>
4432<td align="center">CAF--&gt;AUTO mode switch with AF_<wbr/>TRIGGER</td>
4433<td align="center">trigger-reachable states from INACTIVE</td>
4434<td align="center">Mode switch with trigger,<wbr/> INACTIVE is skipped</td>
4435</tr>
4436<tr>
4437<td align="center">any state</td>
4438<td align="center">AUTO--&gt;CAF mode switch</td>
4439<td align="center">passively reachable states from INACTIVE</td>
4440<td align="center">Mode switch without trigger,<wbr/> passive transient state is skipped</td>
4441</tr>
4442</tbody>
4443</table>
4444            </td>
4445          </tr>
4446
4447
4448          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4449           <!-- end of entry -->
4450        
4451                
4452          <tr class="entry" id="dynamic_android.control.afTriggerId">
4453            <td class="entry_name" rowspan="3">
4454              android.<wbr/>control.<wbr/>af<wbr/>Trigger<wbr/>Id
4455            </td>
4456            <td class="entry_type">
4457                <span class="entry_type_name">int32</span>
4458
4459              <span class="entry_type_visibility"> [hidden]</span>
4460
4461
4462            </td> <!-- entry_type -->
4463
4464            <td class="entry_description">
4465              <p>The ID sent with the latest
4466CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS call</p>
4467            </td>
4468
4469            <td class="entry_units">
4470            </td>
4471
4472            <td class="entry_range">
4473              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
4474            </td>
4475
4476            <td class="entry_tags">
4477            </td>
4478
4479          </tr>
4480          <tr class="entries_header">
4481            <th class="th_details" colspan="5">Details</th>
4482          </tr>
4483          <tr class="entry_cont">
4484            <td class="entry_details" colspan="5">
4485              <p>Must be 0 if no CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS trigger
4486received yet by HAL.<wbr/> Always updated even if AF algorithm
4487ignores the trigger</p>
4488            </td>
4489          </tr>
4490
4491
4492          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4493           <!-- end of entry -->
4494        
4495                
4496          <tr class="entry" id="dynamic_android.control.awbMode">
4497            <td class="entry_name" rowspan="3">
4498              android.<wbr/>control.<wbr/>awb<wbr/>Mode
4499            </td>
4500            <td class="entry_type">
4501                <span class="entry_type_name entry_type_name_enum">byte</span>
4502
4503              <span class="entry_type_visibility"> [public]</span>
4504
4505                <ul class="entry_type_enum">
4506                  <li>
4507                    <span class="entry_type_enum_name">OFF</span>
4508                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4509the application-selected color transform matrix
4510(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
4511(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
4512device for manual white balance control.<wbr/></p></span>
4513                  </li>
4514                  <li>
4515                    <span class="entry_type_enum_name">AUTO</span>
4516                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
4517the application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
4518and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/></p></span>
4519                  </li>
4520                  <li>
4521                    <span class="entry_type_enum_name">INCANDESCENT</span>
4522                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4523the camera device uses incandescent light as the assumed scene
4524illumination for white balance.<wbr/> While the exact white balance
4525transforms are up to the camera device,<wbr/> they will approximately
4526match the CIE standard illuminant A.<wbr/></p></span>
4527                  </li>
4528                  <li>
4529                    <span class="entry_type_enum_name">FLUORESCENT</span>
4530                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4531the camera device uses fluorescent light as the assumed scene
4532illumination for white balance.<wbr/> While the exact white balance
4533transforms are up to the camera device,<wbr/> they will approximately
4534match the CIE standard illuminant F2.<wbr/></p></span>
4535                  </li>
4536                  <li>
4537                    <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
4538                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4539the camera device uses warm fluorescent light as the assumed scene
4540illumination for white balance.<wbr/> While the exact white balance
4541transforms are up to the camera device,<wbr/> they will approximately
4542match the CIE standard illuminant F4.<wbr/></p></span>
4543                  </li>
4544                  <li>
4545                    <span class="entry_type_enum_name">DAYLIGHT</span>
4546                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4547the camera device uses daylight light as the assumed scene
4548illumination for white balance.<wbr/> While the exact white balance
4549transforms are up to the camera device,<wbr/> they will approximately
4550match the CIE standard illuminant D65.<wbr/></p></span>
4551                  </li>
4552                  <li>
4553                    <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
4554                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4555the camera device uses cloudy daylight light as the assumed scene
4556illumination for white balance.<wbr/></p></span>
4557                  </li>
4558                  <li>
4559                    <span class="entry_type_enum_name">TWILIGHT</span>
4560                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4561the camera device uses twilight light as the assumed scene
4562illumination for white balance.<wbr/></p></span>
4563                  </li>
4564                  <li>
4565                    <span class="entry_type_enum_name">SHADE</span>
4566                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4567the camera device uses shade light as the assumed scene
4568illumination for white balance.<wbr/></p></span>
4569                  </li>
4570                </ul>
4571
4572            </td> <!-- entry_type -->
4573
4574            <td class="entry_description">
4575              <p>Whether AWB is currently setting the color
4576transform fields,<wbr/> and what its illumination target
4577is.<wbr/></p>
4578            </td>
4579
4580            <td class="entry_units">
4581            </td>
4582
4583            <td class="entry_range">
4584              <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
4585            </td>
4586
4587            <td class="entry_tags">
4588              <ul class="entry_tags">
4589                  <li><a href="#tag_BC">BC</a></li>
4590                  <li><a href="#tag_AWB">AWB</a></li>
4591              </ul>
4592            </td>
4593
4594          </tr>
4595          <tr class="entries_header">
4596            <th class="th_details" colspan="5">Details</th>
4597          </tr>
4598          <tr class="entry_cont">
4599            <td class="entry_details" colspan="5">
4600              <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
4601<p>When set to the ON mode,<wbr/> the camera device's auto white balance
4602routine is enabled,<wbr/> overriding the application's selected
4603<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
4604<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4605<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
4606routine is disabled.<wbr/> The application manually controls the white
4607balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>
4608and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4609<p>When set to any other modes,<wbr/> the camera device's auto white balance
4610routine is disabled.<wbr/> The camera device uses each particular illumination
4611target for white balance adjustment.<wbr/></p>
4612            </td>
4613          </tr>
4614
4615
4616          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4617           <!-- end of entry -->
4618        
4619                
4620          <tr class="entry" id="dynamic_android.control.awbRegions">
4621            <td class="entry_name" rowspan="3">
4622              android.<wbr/>control.<wbr/>awb<wbr/>Regions
4623            </td>
4624            <td class="entry_type">
4625                <span class="entry_type_name">int32</span>
4626                <span class="entry_type_container">x</span>
4627
4628                <span class="entry_type_array">
4629                  5 x area_count
4630                </span>
4631              <span class="entry_type_visibility"> [public]</span>
4632
4633
4634            </td> <!-- entry_type -->
4635
4636            <td class="entry_description">
4637              <p>List of areas to use for illuminant
4638estimation.<wbr/></p>
4639            </td>
4640
4641            <td class="entry_units">
4642            </td>
4643
4644            <td class="entry_range">
4645              <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[1]</code></p>
4646            </td>
4647
4648            <td class="entry_tags">
4649              <ul class="entry_tags">
4650                  <li><a href="#tag_BC">BC</a></li>
4651              </ul>
4652            </td>
4653
4654          </tr>
4655          <tr class="entries_header">
4656            <th class="th_details" colspan="5">Details</th>
4657          </tr>
4658          <tr class="entry_cont">
4659            <td class="entry_details" colspan="5">
4660              <p>Only used in AUTO mode.<wbr/></p>
4661<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
4662xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
4663specified coordinates.<wbr/></p>
4664<p>The coordinate system is based on the active pixel array,<wbr/>
4665with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
4666(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
4667<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
4668bottom-right pixel in the active pixel array.<wbr/> The weight
4669should be nonnegative.<wbr/></p>
4670<p>If all regions have 0 weight,<wbr/> then no specific auto-white balance (AWB) area
4671needs to be used by the camera device.<wbr/> If the AWB region is
4672outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the camera device
4673will ignore the sections outside the region and output the
4674used sections in the frame metadata.<wbr/></p>
4675            </td>
4676          </tr>
4677
4678
4679          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4680           <!-- end of entry -->
4681        
4682                
4683          <tr class="entry" id="dynamic_android.control.awbState">
4684            <td class="entry_name" rowspan="3">
4685              android.<wbr/>control.<wbr/>awb<wbr/>State
4686            </td>
4687            <td class="entry_type">
4688                <span class="entry_type_name entry_type_name_enum">byte</span>
4689
4690              <span class="entry_type_visibility"> [public]</span>
4691
4692                <ul class="entry_type_enum">
4693                  <li>
4694                    <span class="entry_type_enum_name">INACTIVE</span>
4695                    <span class="entry_type_enum_notes"><p>AWB is not in auto mode.<wbr/>  When a camera device is opened,<wbr/> it
4696starts in this state.<wbr/> This is a transient state,<wbr/> the camera device may
4697skip reporting this state in capture result.<wbr/></p></span>
4698                  </li>
4699                  <li>
4700                    <span class="entry_type_enum_name">SEARCHING</span>
4701                    <span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control
4702values for the current scene.<wbr/> This is a transient state,<wbr/> the camera device
4703may skip reporting this state in capture result.<wbr/></p></span>
4704                  </li>
4705                  <li>
4706                    <span class="entry_type_enum_name">CONVERGED</span>
4707                    <span class="entry_type_enum_notes"><p>AWB has a good set of control values for the
4708current scene.<wbr/></p></span>
4709                  </li>
4710                  <li>
4711                    <span class="entry_type_enum_name">LOCKED</span>
4712                    <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
4713                  </li>
4714                </ul>
4715
4716            </td> <!-- entry_type -->
4717
4718            <td class="entry_description">
4719              <p>Current state of AWB algorithm</p>
4720            </td>
4721
4722            <td class="entry_units">
4723            </td>
4724
4725            <td class="entry_range">
4726            </td>
4727
4728            <td class="entry_tags">
4729            </td>
4730
4731          </tr>
4732          <tr class="entries_header">
4733            <th class="th_details" colspan="5">Details</th>
4734          </tr>
4735          <tr class="entry_cont">
4736            <td class="entry_details" colspan="5">
4737              <p>Switching between or enabling AWB modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) always
4738resets the AWB state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
4739or <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
4740the algorithm states to INACTIVE.<wbr/></p>
4741<p>The camera device can do several state transitions between two results,<wbr/> if it is
4742allowed by the state transition table.<wbr/> So INACTIVE may never actually be seen in
4743a result.<wbr/></p>
4744<p>The state in the result is the state for this image (in sync with this image): if
4745AWB state becomes CONVERGED,<wbr/> then the image data associated with this result should
4746be good to use.<wbr/></p>
4747<p>Below are state transition tables for different AWB modes.<wbr/></p>
4748<p>When <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != AWB_<wbr/>MODE_<wbr/>AUTO</code>:</p>
4749<table>
4750<thead>
4751<tr>
4752<th align="center">State</th>
4753<th align="center">Transition Cause</th>
4754<th align="center">New State</th>
4755<th align="center">Notes</th>
4756</tr>
4757</thead>
4758<tbody>
4759<tr>
4760<td align="center">INACTIVE</td>
4761<td align="center"></td>
4762<td align="center">INACTIVE</td>
4763<td align="center">Camera device auto white balance algorithm is disabled</td>
4764</tr>
4765</tbody>
4766</table>
4767<p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is AWB_<wbr/>MODE_<wbr/>AUTO:</p>
4768<table>
4769<thead>
4770<tr>
4771<th align="center">State</th>
4772<th align="center">Transition Cause</th>
4773<th align="center">New State</th>
4774<th align="center">Notes</th>
4775</tr>
4776</thead>
4777<tbody>
4778<tr>
4779<td align="center">INACTIVE</td>
4780<td align="center">Camera device initiates AWB scan</td>
4781<td align="center">SEARCHING</td>
4782<td align="center">Values changing</td>
4783</tr>
4784<tr>
4785<td align="center">INACTIVE</td>
4786<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4787<td align="center">LOCKED</td>
4788<td align="center">Values locked</td>
4789</tr>
4790<tr>
4791<td align="center">SEARCHING</td>
4792<td align="center">Camera device finishes AWB scan</td>
4793<td align="center">CONVERGED</td>
4794<td align="center">Good values,<wbr/> not changing</td>
4795</tr>
4796<tr>
4797<td align="center">SEARCHING</td>
4798<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4799<td align="center">LOCKED</td>
4800<td align="center">Values locked</td>
4801</tr>
4802<tr>
4803<td align="center">CONVERGED</td>
4804<td align="center">Camera device initiates AWB scan</td>
4805<td align="center">SEARCHING</td>
4806<td align="center">Values changing</td>
4807</tr>
4808<tr>
4809<td align="center">CONVERGED</td>
4810<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4811<td align="center">LOCKED</td>
4812<td align="center">Values locked</td>
4813</tr>
4814<tr>
4815<td align="center">LOCKED</td>
4816<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4817<td align="center">SEARCHING</td>
4818<td align="center">Values not good after unlock</td>
4819</tr>
4820</tbody>
4821</table>
4822<p>For the above table,<wbr/> the camera device may skip reporting any state changes that happen
4823without application intervention (i.<wbr/>e.<wbr/> mode switch,<wbr/> trigger,<wbr/> locking).<wbr/> Any state that
4824can be skipped in that manner is called a transient state.<wbr/></p>
4825<p>For example,<wbr/> for this AWB mode (AWB_<wbr/>MODE_<wbr/>AUTO),<wbr/> in addition to the state transitions
4826listed in above table,<wbr/> it is also legal for the camera device to skip one or more
4827transient states between two results.<wbr/> See below table for examples:</p>
4828<table>
4829<thead>
4830<tr>
4831<th align="center">State</th>
4832<th align="center">Transition Cause</th>
4833<th align="center">New State</th>
4834<th align="center">Notes</th>
4835</tr>
4836</thead>
4837<tbody>
4838<tr>
4839<td align="center">INACTIVE</td>
4840<td align="center">Camera device finished AWB scan</td>
4841<td align="center">CONVERGED</td>
4842<td align="center">Values are already good,<wbr/> transient states are skipped by camera device.<wbr/></td>
4843</tr>
4844<tr>
4845<td align="center">LOCKED</td>
4846<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4847<td align="center">CONVERGED</td>
4848<td align="center">Values good after unlock,<wbr/> transient states are skipped by camera device.<wbr/></td>
4849</tr>
4850</tbody>
4851</table>
4852            </td>
4853          </tr>
4854
4855
4856          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4857           <!-- end of entry -->
4858        
4859                
4860          <tr class="entry" id="dynamic_android.control.mode">
4861            <td class="entry_name" rowspan="3">
4862              android.<wbr/>control.<wbr/>mode
4863            </td>
4864            <td class="entry_type">
4865                <span class="entry_type_name entry_type_name_enum">byte</span>
4866
4867              <span class="entry_type_visibility"> [public]</span>
4868
4869                <ul class="entry_type_enum">
4870                  <li>
4871                    <span class="entry_type_enum_name">OFF</span>
4872                    <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
4873routines are disabled,<wbr/> no other settings in
4874android.<wbr/>control.<wbr/>* have any effect</p></span>
4875                  </li>
4876                  <li>
4877                    <span class="entry_type_enum_name">AUTO</span>
4878                    <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
4879Manual control of capture parameters is disabled.<wbr/> All
4880controls in android.<wbr/>control.<wbr/>* besides sceneMode take
4881effect</p></span>
4882                  </li>
4883                  <li>
4884                    <span class="entry_type_enum_name">USE_SCENE_MODE</span>
4885                    <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
4886control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
4887controls; the camera device will ignore those settings while
4888USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
4889scene mode).<wbr/> Other control entries are still active.<wbr/>
4890This setting can only be used if scene mode is supported
4891(i.<wbr/>e.<wbr/> <a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a> contain some modes
4892other than DISABLED).<wbr/></p></span>
4893                  </li>
4894                  <li>
4895                    <span class="entry_type_enum_name">OFF_KEEP_STATE</span>
4896                    <span class="entry_type_enum_notes"><p>Same as OFF mode,<wbr/> except that this capture will not be
4897used by camera device background auto-exposure,<wbr/> auto-white balance and
4898auto-focus algorithms to update their statistics.<wbr/></p></span>
4899                  </li>
4900                </ul>
4901
4902            </td> <!-- entry_type -->
4903
4904            <td class="entry_description">
4905              <p>Overall mode of 3A control
4906routines.<wbr/></p>
4907            </td>
4908
4909            <td class="entry_units">
4910            </td>
4911
4912            <td class="entry_range">
4913              <p>all must be supported</p>
4914            </td>
4915
4916            <td class="entry_tags">
4917              <ul class="entry_tags">
4918                  <li><a href="#tag_BC">BC</a></li>
4919              </ul>
4920            </td>
4921
4922          </tr>
4923          <tr class="entries_header">
4924            <th class="th_details" colspan="5">Details</th>
4925          </tr>
4926          <tr class="entry_cont">
4927            <td class="entry_details" colspan="5">
4928              <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
4929by the camera device is disabled.<wbr/> The application must set the fields for
4930capture parameters itself.<wbr/></p>
4931<p>When set to AUTO,<wbr/> the individual algorithm controls in
4932android.<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>
4933<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
4934android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
4935one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
4936as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
4937<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
4938<p>When set to OFF_<wbr/>KEEP_<wbr/>STATE,<wbr/> it is similar to OFF mode,<wbr/> the only difference
4939is that this frame will not be used by camera device background 3A statistics
4940update,<wbr/> as if this frame is never captured.<wbr/> This mode can be used in the scenario
4941where the application doesn't want a 3A manual control capture to affect
4942the subsequent auto 3A capture results.<wbr/></p>
4943            </td>
4944          </tr>
4945
4946
4947          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4948           <!-- end of entry -->
4949        
4950        
4951
4952      <!-- end of kind -->
4953      </tbody>
4954
4955  <!-- end of section -->
4956  <tr><td colspan="6" id="section_demosaic" class="section">demosaic</td></tr>
4957
4958
4959      <tr><td colspan="6" class="kind">controls</td></tr>
4960
4961      <thead class="entries_header">
4962        <tr>
4963          <th class="th_name">Property Name</th>
4964          <th class="th_type">Type</th>
4965          <th class="th_description">Description</th>
4966          <th class="th_units">Units</th>
4967          <th class="th_range">Range</th>
4968          <th class="th_tags">Tags</th>
4969        </tr>
4970      </thead>
4971
4972      <tbody>
4973
4974        
4975
4976        
4977
4978        
4979
4980        
4981
4982                
4983          <tr class="entry" id="controls_android.demosaic.mode">
4984            <td class="entry_name" rowspan="1">
4985              android.<wbr/>demosaic.<wbr/>mode
4986            </td>
4987            <td class="entry_type">
4988                <span class="entry_type_name entry_type_name_enum">byte</span>
4989
4990              <span class="entry_type_visibility"> [system]</span>
4991
4992                <ul class="entry_type_enum">
4993                  <li>
4994                    <span class="entry_type_enum_name">FAST</span>
4995                    <span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to
4996Bayer RAW output</p></span>
4997                  </li>
4998                  <li>
4999                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
5000                    <span class="entry_type_enum_notes"><p>High-quality may reduce output frame
5001rate</p></span>
5002                  </li>
5003                </ul>
5004
5005            </td> <!-- entry_type -->
5006
5007            <td class="entry_description">
5008              <p>Controls the quality of the demosaicing
5009processing</p>
5010            </td>
5011
5012            <td class="entry_units">
5013            </td>
5014
5015            <td class="entry_range">
5016            </td>
5017
5018            <td class="entry_tags">
5019              <ul class="entry_tags">
5020                  <li><a href="#tag_V1">V1</a></li>
5021              </ul>
5022            </td>
5023
5024          </tr>
5025
5026
5027          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5028           <!-- end of entry -->
5029        
5030        
5031
5032      <!-- end of kind -->
5033      </tbody>
5034
5035  <!-- end of section -->
5036  <tr><td colspan="6" id="section_edge" class="section">edge</td></tr>
5037
5038
5039      <tr><td colspan="6" class="kind">controls</td></tr>
5040
5041      <thead class="entries_header">
5042        <tr>
5043          <th class="th_name">Property Name</th>
5044          <th class="th_type">Type</th>
5045          <th class="th_description">Description</th>
5046          <th class="th_units">Units</th>
5047          <th class="th_range">Range</th>
5048          <th class="th_tags">Tags</th>
5049        </tr>
5050      </thead>
5051
5052      <tbody>
5053
5054        
5055
5056        
5057
5058        
5059
5060        
5061
5062                
5063          <tr class="entry" id="controls_android.edge.mode">
5064            <td class="entry_name" rowspan="3">
5065              android.<wbr/>edge.<wbr/>mode
5066            </td>
5067            <td class="entry_type">
5068                <span class="entry_type_name entry_type_name_enum">byte</span>
5069
5070              <span class="entry_type_visibility"> [public]</span>
5071
5072                <ul class="entry_type_enum">
5073                  <li>
5074                    <span class="entry_type_enum_name">OFF</span>
5075                    <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
5076                  </li>
5077                  <li>
5078                    <span class="entry_type_enum_name">FAST</span>
5079                    <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
5080output</p></span>
5081                  </li>
5082                  <li>
5083                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
5084                    <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5085quality</p></span>
5086                  </li>
5087                </ul>
5088
5089            </td> <!-- entry_type -->
5090
5091            <td class="entry_description">
5092              <p>Operation mode for edge
5093enhancement.<wbr/></p>
5094            </td>
5095
5096            <td class="entry_units">
5097            </td>
5098
5099            <td class="entry_range">
5100            </td>
5101
5102            <td class="entry_tags">
5103              <ul class="entry_tags">
5104                  <li><a href="#tag_V1">V1</a></li>
5105              </ul>
5106            </td>
5107
5108          </tr>
5109          <tr class="entries_header">
5110            <th class="th_details" colspan="5">Details</th>
5111          </tr>
5112          <tr class="entry_cont">
5113            <td class="entry_details" colspan="5">
5114              <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
5115enhancement will be applied by the camera device.<wbr/></p>
5116<p>This must be set to one of the modes listed in <a href="#static_android.edge.availableEdgeModes">android.<wbr/>edge.<wbr/>available<wbr/>Edge<wbr/>Modes</a>.<wbr/></p>
5117<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
5118will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
5119camera device will use the highest-quality enhancement algorithms,<wbr/>
5120even if it slows down capture rate.<wbr/> FAST means the camera device will
5121not slow down capture rate when applying edge enhancement.<wbr/></p>
5122            </td>
5123          </tr>
5124
5125
5126          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5127           <!-- end of entry -->
5128        
5129                
5130          <tr class="entry" id="controls_android.edge.strength">
5131            <td class="entry_name" rowspan="1">
5132              android.<wbr/>edge.<wbr/>strength
5133            </td>
5134            <td class="entry_type">
5135                <span class="entry_type_name">byte</span>
5136
5137              <span class="entry_type_visibility"> [system]</span>
5138
5139
5140            </td> <!-- entry_type -->
5141
5142            <td class="entry_description">
5143              <p>Control the amount of edge enhancement
5144applied to the images</p>
5145            </td>
5146
5147            <td class="entry_units">
5148              1-10; 10 is maximum sharpening
5149            </td>
5150
5151            <td class="entry_range">
5152            </td>
5153
5154            <td class="entry_tags">
5155              <ul class="entry_tags">
5156                  <li><a href="#tag_V1">V1</a></li>
5157              </ul>
5158            </td>
5159
5160          </tr>
5161
5162
5163          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5164           <!-- end of entry -->
5165        
5166        
5167
5168      <!-- end of kind -->
5169      </tbody>
5170      <tr><td colspan="6" class="kind">static</td></tr>
5171
5172      <thead class="entries_header">
5173        <tr>
5174          <th class="th_name">Property Name</th>
5175          <th class="th_type">Type</th>
5176          <th class="th_description">Description</th>
5177          <th class="th_units">Units</th>
5178          <th class="th_range">Range</th>
5179          <th class="th_tags">Tags</th>
5180        </tr>
5181      </thead>
5182
5183      <tbody>
5184
5185        
5186
5187        
5188
5189        
5190
5191        
5192
5193                
5194          <tr class="entry" id="static_android.edge.availableEdgeModes">
5195            <td class="entry_name" rowspan="3">
5196              android.<wbr/>edge.<wbr/>available<wbr/>Edge<wbr/>Modes
5197            </td>
5198            <td class="entry_type">
5199                <span class="entry_type_name">byte</span>
5200                <span class="entry_type_container">x</span>
5201
5202                <span class="entry_type_array">
5203                  n
5204                </span>
5205              <span class="entry_type_visibility"> [public]</span>
5206                <div class="entry_type_notes">list of enums</div>
5207
5208
5209            </td> <!-- entry_type -->
5210
5211            <td class="entry_description">
5212              <p>The set of edge enhancement modes supported by this camera device.<wbr/></p>
5213            </td>
5214
5215            <td class="entry_units">
5216            </td>
5217
5218            <td class="entry_range">
5219            </td>
5220
5221            <td class="entry_tags">
5222              <ul class="entry_tags">
5223                  <li><a href="#tag_V1">V1</a></li>
5224              </ul>
5225            </td>
5226
5227          </tr>
5228          <tr class="entries_header">
5229            <th class="th_details" colspan="5">Details</th>
5230          </tr>
5231          <tr class="entry_cont">
5232            <td class="entry_details" colspan="5">
5233              <p>This tag lists the valid modes for <a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a>.<wbr/></p>
5234<p>Full-capability camera devices must always support OFF and FAST.<wbr/></p>
5235            </td>
5236          </tr>
5237
5238
5239          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5240           <!-- end of entry -->
5241        
5242        
5243
5244      <!-- end of kind -->
5245      </tbody>
5246      <tr><td colspan="6" class="kind">dynamic</td></tr>
5247
5248      <thead class="entries_header">
5249        <tr>
5250          <th class="th_name">Property Name</th>
5251          <th class="th_type">Type</th>
5252          <th class="th_description">Description</th>
5253          <th class="th_units">Units</th>
5254          <th class="th_range">Range</th>
5255          <th class="th_tags">Tags</th>
5256        </tr>
5257      </thead>
5258
5259      <tbody>
5260
5261        
5262
5263        
5264
5265        
5266
5267        
5268
5269                
5270          <tr class="entry" id="dynamic_android.edge.mode">
5271            <td class="entry_name" rowspan="3">
5272              android.<wbr/>edge.<wbr/>mode
5273            </td>
5274            <td class="entry_type">
5275                <span class="entry_type_name entry_type_name_enum">byte</span>
5276
5277              <span class="entry_type_visibility"> [public]</span>
5278
5279                <ul class="entry_type_enum">
5280                  <li>
5281                    <span class="entry_type_enum_name">OFF</span>
5282                    <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
5283                  </li>
5284                  <li>
5285                    <span class="entry_type_enum_name">FAST</span>
5286                    <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
5287output</p></span>
5288                  </li>
5289                  <li>
5290                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
5291                    <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5292quality</p></span>
5293                  </li>
5294                </ul>
5295
5296            </td> <!-- entry_type -->
5297
5298            <td class="entry_description">
5299              <p>Operation mode for edge
5300enhancement.<wbr/></p>
5301            </td>
5302
5303            <td class="entry_units">
5304            </td>
5305
5306            <td class="entry_range">
5307            </td>
5308
5309            <td class="entry_tags">
5310              <ul class="entry_tags">
5311                  <li><a href="#tag_V1">V1</a></li>
5312              </ul>
5313            </td>
5314
5315          </tr>
5316          <tr class="entries_header">
5317            <th class="th_details" colspan="5">Details</th>
5318          </tr>
5319          <tr class="entry_cont">
5320            <td class="entry_details" colspan="5">
5321              <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
5322enhancement will be applied by the camera device.<wbr/></p>
5323<p>This must be set to one of the modes listed in <a href="#static_android.edge.availableEdgeModes">android.<wbr/>edge.<wbr/>available<wbr/>Edge<wbr/>Modes</a>.<wbr/></p>
5324<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
5325will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
5326camera device will use the highest-quality enhancement algorithms,<wbr/>
5327even if it slows down capture rate.<wbr/> FAST means the camera device will
5328not slow down capture rate when applying edge enhancement.<wbr/></p>
5329            </td>
5330          </tr>
5331
5332
5333          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5334           <!-- end of entry -->
5335        
5336        
5337
5338      <!-- end of kind -->
5339      </tbody>
5340
5341  <!-- end of section -->
5342  <tr><td colspan="6" id="section_flash" class="section">flash</td></tr>
5343
5344
5345      <tr><td colspan="6" class="kind">controls</td></tr>
5346
5347      <thead class="entries_header">
5348        <tr>
5349          <th class="th_name">Property Name</th>
5350          <th class="th_type">Type</th>
5351          <th class="th_description">Description</th>
5352          <th class="th_units">Units</th>
5353          <th class="th_range">Range</th>
5354          <th class="th_tags">Tags</th>
5355        </tr>
5356      </thead>
5357
5358      <tbody>
5359
5360        
5361
5362        
5363
5364        
5365
5366        
5367
5368                
5369          <tr class="entry" id="controls_android.flash.firingPower">
5370            <td class="entry_name" rowspan="3">
5371              android.<wbr/>flash.<wbr/>firing<wbr/>Power
5372            </td>
5373            <td class="entry_type">
5374                <span class="entry_type_name">byte</span>
5375
5376              <span class="entry_type_visibility"> [system]</span>
5377
5378
5379            </td> <!-- entry_type -->
5380
5381            <td class="entry_description">
5382              <p>Power for flash firing/<wbr/>torch</p>
5383            </td>
5384
5385            <td class="entry_units">
5386              10 is max power; 0 is no flash.<wbr/> Linear
5387            </td>
5388
5389            <td class="entry_range">
5390              <p>0 - 10</p>
5391            </td>
5392
5393            <td class="entry_tags">
5394              <ul class="entry_tags">
5395                  <li><a href="#tag_V1">V1</a></li>
5396              </ul>
5397            </td>
5398
5399          </tr>
5400          <tr class="entries_header">
5401            <th class="th_details" colspan="5">Details</th>
5402          </tr>
5403          <tr class="entry_cont">
5404            <td class="entry_details" colspan="5">
5405              <p>Power for snapshot may use a different scale than
5406for torch mode.<wbr/> Only one entry for torch mode will be
5407used</p>
5408            </td>
5409          </tr>
5410
5411
5412          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5413           <!-- end of entry -->
5414        
5415                
5416          <tr class="entry" id="controls_android.flash.firingTime">
5417            <td class="entry_name" rowspan="3">
5418              android.<wbr/>flash.<wbr/>firing<wbr/>Time
5419            </td>
5420            <td class="entry_type">
5421                <span class="entry_type_name">int64</span>
5422
5423              <span class="entry_type_visibility"> [system]</span>
5424
5425
5426            </td> <!-- entry_type -->
5427
5428            <td class="entry_description">
5429              <p>Firing time of flash relative to start of
5430exposure</p>
5431            </td>
5432
5433            <td class="entry_units">
5434              nanoseconds
5435            </td>
5436
5437            <td class="entry_range">
5438              <p>0-(exposure time-flash duration)</p>
5439            </td>
5440
5441            <td class="entry_tags">
5442              <ul class="entry_tags">
5443                  <li><a href="#tag_V1">V1</a></li>
5444              </ul>
5445            </td>
5446
5447          </tr>
5448          <tr class="entries_header">
5449            <th class="th_details" colspan="5">Details</th>
5450          </tr>
5451          <tr class="entry_cont">
5452            <td class="entry_details" colspan="5">
5453              <p>Clamped to (0,<wbr/> exposure time - flash
5454duration).<wbr/></p>
5455            </td>
5456          </tr>
5457
5458
5459          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5460           <!-- end of entry -->
5461        
5462                
5463          <tr class="entry" id="controls_android.flash.mode">
5464            <td class="entry_name" rowspan="3">
5465              android.<wbr/>flash.<wbr/>mode
5466            </td>
5467            <td class="entry_type">
5468                <span class="entry_type_name entry_type_name_enum">byte</span>
5469
5470              <span class="entry_type_visibility"> [public]</span>
5471
5472                <ul class="entry_type_enum">
5473                  <li>
5474                    <span class="entry_type_enum_name">OFF</span>
5475                    <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
5476                  </li>
5477                  <li>
5478                    <span class="entry_type_enum_name">SINGLE</span>
5479                    <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5480for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5481<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
5482                  </li>
5483                  <li>
5484                    <span class="entry_type_enum_name">TORCH</span>
5485                    <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
5486                  </li>
5487                </ul>
5488
5489            </td> <!-- entry_type -->
5490
5491            <td class="entry_description">
5492              <p>The desired mode for for the camera device's flash control.<wbr/></p>
5493            </td>
5494
5495            <td class="entry_units">
5496            </td>
5497
5498            <td class="entry_range">
5499            </td>
5500
5501            <td class="entry_tags">
5502              <ul class="entry_tags">
5503                  <li><a href="#tag_BC">BC</a></li>
5504              </ul>
5505            </td>
5506
5507          </tr>
5508          <tr class="entries_header">
5509            <th class="th_details" colspan="5">Details</th>
5510          </tr>
5511          <tr class="entry_cont">
5512            <td class="entry_details" colspan="5">
5513              <p>This control is only effective when flash unit is available
5514(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == true</code>).<wbr/></p>
5515<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/>
5516Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5517ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5518<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5519<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5520device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5521control should be used along with AE precapture metering sequence
5522(<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>
5523<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5524for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
5525<p>The flash status will be reported by <a href="#dynamic_android.flash.state">android.<wbr/>flash.<wbr/>state</a> in the capture result metadata.<wbr/></p>
5526            </td>
5527          </tr>
5528
5529
5530          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5531           <!-- end of entry -->
5532        
5533        
5534
5535      <!-- end of kind -->
5536      </tbody>
5537      <tr><td colspan="6" class="kind">static</td></tr>
5538
5539      <thead class="entries_header">
5540        <tr>
5541          <th class="th_name">Property Name</th>
5542          <th class="th_type">Type</th>
5543          <th class="th_description">Description</th>
5544          <th class="th_units">Units</th>
5545          <th class="th_range">Range</th>
5546          <th class="th_tags">Tags</th>
5547        </tr>
5548      </thead>
5549
5550      <tbody>
5551
5552        
5553
5554        
5555
5556        
5557
5558        
5559                
5560            
5561
5562                
5563          <tr class="entry" id="static_android.flash.info.available">
5564            <td class="entry_name" rowspan="3">
5565              android.<wbr/>flash.<wbr/>info.<wbr/>available
5566            </td>
5567            <td class="entry_type">
5568                <span class="entry_type_name entry_type_name_enum">byte</span>
5569
5570              <span class="entry_type_visibility"> [public as boolean]</span>
5571
5572                <ul class="entry_type_enum">
5573                  <li>
5574                    <span class="entry_type_enum_name">FALSE</span>
5575                  </li>
5576                  <li>
5577                    <span class="entry_type_enum_name">TRUE</span>
5578                  </li>
5579                </ul>
5580
5581            </td> <!-- entry_type -->
5582
5583            <td class="entry_description">
5584              <p>Whether this camera device has a
5585flash.<wbr/></p>
5586            </td>
5587
5588            <td class="entry_units">
5589            </td>
5590
5591            <td class="entry_range">
5592            </td>
5593
5594            <td class="entry_tags">
5595              <ul class="entry_tags">
5596                  <li><a href="#tag_BC">BC</a></li>
5597              </ul>
5598            </td>
5599
5600          </tr>
5601          <tr class="entries_header">
5602            <th class="th_details" colspan="5">Details</th>
5603          </tr>
5604          <tr class="entry_cont">
5605            <td class="entry_details" colspan="5">
5606              <p>If no flash,<wbr/> none of the flash controls do
5607anything.<wbr/> All other metadata should return 0.<wbr/></p>
5608            </td>
5609          </tr>
5610
5611
5612          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5613           <!-- end of entry -->
5614        
5615                
5616          <tr class="entry" id="static_android.flash.info.chargeDuration">
5617            <td class="entry_name" rowspan="3">
5618              android.<wbr/>flash.<wbr/>info.<wbr/>charge<wbr/>Duration
5619            </td>
5620            <td class="entry_type">
5621                <span class="entry_type_name">int64</span>
5622
5623              <span class="entry_type_visibility"> [system]</span>
5624
5625
5626            </td> <!-- entry_type -->
5627
5628            <td class="entry_description">
5629              <p>Time taken before flash can fire
5630again</p>
5631            </td>
5632
5633            <td class="entry_units">
5634              nanoseconds
5635            </td>
5636
5637            <td class="entry_range">
5638              <p>0-1e9</p>
5639            </td>
5640
5641            <td class="entry_tags">
5642              <ul class="entry_tags">
5643                  <li><a href="#tag_V1">V1</a></li>
5644              </ul>
5645            </td>
5646
5647          </tr>
5648          <tr class="entries_header">
5649            <th class="th_details" colspan="5">Details</th>
5650          </tr>
5651          <tr class="entry_cont">
5652            <td class="entry_details" colspan="5">
5653              <p>1 second too long/<wbr/>too short for recharge? Should
5654this be power-dependent?</p>
5655            </td>
5656          </tr>
5657
5658
5659          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5660           <!-- end of entry -->
5661        
5662        
5663        
5664
5665                
5666          <tr class="entry" id="static_android.flash.colorTemperature">
5667            <td class="entry_name" rowspan="1">
5668              android.<wbr/>flash.<wbr/>color<wbr/>Temperature
5669            </td>
5670            <td class="entry_type">
5671                <span class="entry_type_name">byte</span>
5672
5673              <span class="entry_type_visibility"> [system]</span>
5674
5675
5676            </td> <!-- entry_type -->
5677
5678            <td class="entry_description">
5679              <p>The x,<wbr/>y whitepoint of the
5680flash</p>
5681            </td>
5682
5683            <td class="entry_units">
5684              pair of floats
5685            </td>
5686
5687            <td class="entry_range">
5688              <p>0-1 for both</p>
5689            </td>
5690
5691            <td class="entry_tags">
5692              <ul class="entry_tags">
5693                  <li><a href="#tag_ADV">ADV</a></li>
5694              </ul>
5695            </td>
5696
5697          </tr>
5698
5699
5700          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5701           <!-- end of entry -->
5702        
5703                
5704          <tr class="entry" id="static_android.flash.maxEnergy">
5705            <td class="entry_name" rowspan="1">
5706              android.<wbr/>flash.<wbr/>max<wbr/>Energy
5707            </td>
5708            <td class="entry_type">
5709                <span class="entry_type_name">byte</span>
5710
5711              <span class="entry_type_visibility"> [system]</span>
5712
5713
5714            </td> <!-- entry_type -->
5715
5716            <td class="entry_description">
5717              <p>Max energy output of the flash for a full
5718power single flash</p>
5719            </td>
5720
5721            <td class="entry_units">
5722              lumen-seconds
5723            </td>
5724
5725            <td class="entry_range">
5726              <p>&gt;= 0</p>
5727            </td>
5728
5729            <td class="entry_tags">
5730              <ul class="entry_tags">
5731                  <li><a href="#tag_ADV">ADV</a></li>
5732              </ul>
5733            </td>
5734
5735          </tr>
5736
5737
5738          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5739           <!-- end of entry -->
5740        
5741        
5742
5743      <!-- end of kind -->
5744      </tbody>
5745      <tr><td colspan="6" class="kind">dynamic</td></tr>
5746
5747      <thead class="entries_header">
5748        <tr>
5749          <th class="th_name">Property Name</th>
5750          <th class="th_type">Type</th>
5751          <th class="th_description">Description</th>
5752          <th class="th_units">Units</th>
5753          <th class="th_range">Range</th>
5754          <th class="th_tags">Tags</th>
5755        </tr>
5756      </thead>
5757
5758      <tbody>
5759
5760        
5761
5762        
5763
5764        
5765
5766        
5767
5768                
5769          <tr class="entry" id="dynamic_android.flash.firingPower">
5770            <td class="entry_name" rowspan="3">
5771              android.<wbr/>flash.<wbr/>firing<wbr/>Power
5772            </td>
5773            <td class="entry_type">
5774                <span class="entry_type_name">byte</span>
5775
5776              <span class="entry_type_visibility"> [system]</span>
5777
5778
5779            </td> <!-- entry_type -->
5780
5781            <td class="entry_description">
5782              <p>Power for flash firing/<wbr/>torch</p>
5783            </td>
5784
5785            <td class="entry_units">
5786              10 is max power; 0 is no flash.<wbr/> Linear
5787            </td>
5788
5789            <td class="entry_range">
5790              <p>0 - 10</p>
5791            </td>
5792
5793            <td class="entry_tags">
5794              <ul class="entry_tags">
5795                  <li><a href="#tag_V1">V1</a></li>
5796              </ul>
5797            </td>
5798
5799          </tr>
5800          <tr class="entries_header">
5801            <th class="th_details" colspan="5">Details</th>
5802          </tr>
5803          <tr class="entry_cont">
5804            <td class="entry_details" colspan="5">
5805              <p>Power for snapshot may use a different scale than
5806for torch mode.<wbr/> Only one entry for torch mode will be
5807used</p>
5808            </td>
5809          </tr>
5810
5811
5812          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5813           <!-- end of entry -->
5814        
5815                
5816          <tr class="entry" id="dynamic_android.flash.firingTime">
5817            <td class="entry_name" rowspan="3">
5818              android.<wbr/>flash.<wbr/>firing<wbr/>Time
5819            </td>
5820            <td class="entry_type">
5821                <span class="entry_type_name">int64</span>
5822
5823              <span class="entry_type_visibility"> [system]</span>
5824
5825
5826            </td> <!-- entry_type -->
5827
5828            <td class="entry_description">
5829              <p>Firing time of flash relative to start of
5830exposure</p>
5831            </td>
5832
5833            <td class="entry_units">
5834              nanoseconds
5835            </td>
5836
5837            <td class="entry_range">
5838              <p>0-(exposure time-flash duration)</p>
5839            </td>
5840
5841            <td class="entry_tags">
5842              <ul class="entry_tags">
5843                  <li><a href="#tag_V1">V1</a></li>
5844              </ul>
5845            </td>
5846
5847          </tr>
5848          <tr class="entries_header">
5849            <th class="th_details" colspan="5">Details</th>
5850          </tr>
5851          <tr class="entry_cont">
5852            <td class="entry_details" colspan="5">
5853              <p>Clamped to (0,<wbr/> exposure time - flash
5854duration).<wbr/></p>
5855            </td>
5856          </tr>
5857
5858
5859          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5860           <!-- end of entry -->
5861        
5862                
5863          <tr class="entry" id="dynamic_android.flash.mode">
5864            <td class="entry_name" rowspan="3">
5865              android.<wbr/>flash.<wbr/>mode
5866            </td>
5867            <td class="entry_type">
5868                <span class="entry_type_name entry_type_name_enum">byte</span>
5869
5870              <span class="entry_type_visibility"> [public]</span>
5871
5872                <ul class="entry_type_enum">
5873                  <li>
5874                    <span class="entry_type_enum_name">OFF</span>
5875                    <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
5876                  </li>
5877                  <li>
5878                    <span class="entry_type_enum_name">SINGLE</span>
5879                    <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5880for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5881<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
5882                  </li>
5883                  <li>
5884                    <span class="entry_type_enum_name">TORCH</span>
5885                    <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
5886                  </li>
5887                </ul>
5888
5889            </td> <!-- entry_type -->
5890
5891            <td class="entry_description">
5892              <p>The desired mode for for the camera device's flash control.<wbr/></p>
5893            </td>
5894
5895            <td class="entry_units">
5896            </td>
5897
5898            <td class="entry_range">
5899            </td>
5900
5901            <td class="entry_tags">
5902              <ul class="entry_tags">
5903                  <li><a href="#tag_BC">BC</a></li>
5904              </ul>
5905            </td>
5906
5907          </tr>
5908          <tr class="entries_header">
5909            <th class="th_details" colspan="5">Details</th>
5910          </tr>
5911          <tr class="entry_cont">
5912            <td class="entry_details" colspan="5">
5913              <p>This control is only effective when flash unit is available
5914(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == true</code>).<wbr/></p>
5915<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/>
5916Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5917ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5918<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5919<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5920device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5921control should be used along with AE precapture metering sequence
5922(<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>
5923<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5924for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
5925<p>The flash status will be reported by <a href="#dynamic_android.flash.state">android.<wbr/>flash.<wbr/>state</a> in the capture result metadata.<wbr/></p>
5926            </td>
5927          </tr>
5928
5929
5930          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5931           <!-- end of entry -->
5932        
5933                
5934          <tr class="entry" id="dynamic_android.flash.state">
5935            <td class="entry_name" rowspan="3">
5936              android.<wbr/>flash.<wbr/>state
5937            </td>
5938            <td class="entry_type">
5939                <span class="entry_type_name entry_type_name_enum">byte</span>
5940
5941              <span class="entry_type_visibility"> [public]</span>
5942
5943                <ul class="entry_type_enum">
5944                  <li>
5945                    <span class="entry_type_enum_name">UNAVAILABLE</span>
5946                    <span class="entry_type_enum_notes"><p>No flash on camera.<wbr/></p></span>
5947                  </li>
5948                  <li>
5949                    <span class="entry_type_enum_name">CHARGING</span>
5950                    <span class="entry_type_enum_notes"><p>Flash is charging and cannot be fired.<wbr/></p></span>
5951                  </li>
5952                  <li>
5953                    <span class="entry_type_enum_name">READY</span>
5954                    <span class="entry_type_enum_notes"><p>Flash is ready to fire.<wbr/></p></span>
5955                  </li>
5956                  <li>
5957                    <span class="entry_type_enum_name">FIRED</span>
5958                    <span class="entry_type_enum_notes"><p>Flash fired for this capture.<wbr/></p></span>
5959                  </li>
5960                  <li>
5961                    <span class="entry_type_enum_name">PARTIAL</span>
5962                    <span class="entry_type_enum_notes"><p>Flash partially illuminated this frame.<wbr/> This is usually due to the next
5963or previous frame having the flash fire,<wbr/> and the flash spilling into this capture
5964due to hardware limitations.<wbr/></p></span>
5965                  </li>
5966                </ul>
5967
5968            </td> <!-- entry_type -->
5969
5970            <td class="entry_description">
5971              <p>Current state of the flash
5972unit.<wbr/></p>
5973            </td>
5974
5975            <td class="entry_units">
5976            </td>
5977
5978            <td class="entry_range">
5979            </td>
5980
5981            <td class="entry_tags">
5982            </td>
5983
5984          </tr>
5985          <tr class="entries_header">
5986            <th class="th_details" colspan="5">Details</th>
5987          </tr>
5988          <tr class="entry_cont">
5989            <td class="entry_details" colspan="5">
5990              <p>When the camera device doesn't have flash unit
5991(i.<wbr/>e.<wbr/> <code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == false</code>),<wbr/> this state will always be UNAVAILABLE.<wbr/>
5992Other states indicate the current flash status.<wbr/></p>
5993            </td>
5994          </tr>
5995
5996
5997          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5998           <!-- end of entry -->
5999        
6000        
6001
6002      <!-- end of kind -->
6003      </tbody>
6004
6005  <!-- end of section -->
6006  <tr><td colspan="6" id="section_hotPixel" class="section">hotPixel</td></tr>
6007
6008
6009      <tr><td colspan="6" class="kind">controls</td></tr>
6010
6011      <thead class="entries_header">
6012        <tr>
6013          <th class="th_name">Property Name</th>
6014          <th class="th_type">Type</th>
6015          <th class="th_description">Description</th>
6016          <th class="th_units">Units</th>
6017          <th class="th_range">Range</th>
6018          <th class="th_tags">Tags</th>
6019        </tr>
6020      </thead>
6021
6022      <tbody>
6023
6024        
6025
6026        
6027
6028        
6029
6030        
6031
6032                
6033          <tr class="entry" id="controls_android.hotPixel.mode">
6034            <td class="entry_name" rowspan="3">
6035              android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
6036            </td>
6037            <td class="entry_type">
6038                <span class="entry_type_name entry_type_name_enum">byte</span>
6039
6040              <span class="entry_type_visibility"> [public]</span>
6041
6042                <ul class="entry_type_enum">
6043                  <li>
6044                    <span class="entry_type_enum_name">OFF</span>
6045                    <span class="entry_type_enum_notes"><p>The frame rate must not be reduced relative to sensor raw output
6046for this option.<wbr/></p>
6047<p>No hot pixel correction is applied.<wbr/>
6048The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
6049                  </li>
6050                  <li>
6051                    <span class="entry_type_enum_name">FAST</span>
6052                    <span class="entry_type_enum_notes"><p>The frame rate must not be reduced relative to sensor raw output
6053for this option.<wbr/></p>
6054<p>Hot pixel correction is applied.<wbr/>
6055The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
6056                  </li>
6057                  <li>
6058                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
6059                    <span class="entry_type_enum_notes"><p>The frame rate may be reduced relative to sensor raw output
6060for this option.<wbr/></p>
6061<p>A high-quality hot pixel correction is applied.<wbr/>
6062The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
6063                  </li>
6064                </ul>
6065
6066            </td> <!-- entry_type -->
6067
6068            <td class="entry_description">
6069              <p>Set operational mode for hot pixel correction.<wbr/></p>
6070            </td>
6071
6072            <td class="entry_units">
6073            </td>
6074
6075            <td class="entry_range">
6076            </td>
6077
6078            <td class="entry_tags">
6079              <ul class="entry_tags">
6080                  <li><a href="#tag_V1">V1</a></li>
6081                  <li><a href="#tag_DNG">DNG</a></li>
6082              </ul>
6083            </td>
6084
6085          </tr>
6086          <tr class="entries_header">
6087            <th class="th_details" colspan="5">Details</th>
6088          </tr>
6089          <tr class="entry_cont">
6090            <td class="entry_details" colspan="5">
6091              <p>Valid modes for this camera device are listed in
6092<a href="#static_android.hotPixel.availableHotPixelModes">android.<wbr/>hot<wbr/>Pixel.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Modes</a>.<wbr/></p>
6093<p>Hotpixel correction interpolates out,<wbr/> or otherwise removes,<wbr/> pixels
6094that do not accurately encode the incoming light (i.<wbr/>e.<wbr/> pixels that
6095are stuck at an arbitrary value).<wbr/></p>
6096            </td>
6097          </tr>
6098
6099
6100          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6101           <!-- end of entry -->
6102        
6103        
6104
6105      <!-- end of kind -->
6106      </tbody>
6107      <tr><td colspan="6" class="kind">static</td></tr>
6108
6109      <thead class="entries_header">
6110        <tr>
6111          <th class="th_name">Property Name</th>
6112          <th class="th_type">Type</th>
6113          <th class="th_description">Description</th>
6114          <th class="th_units">Units</th>
6115          <th class="th_range">Range</th>
6116          <th class="th_tags">Tags</th>
6117        </tr>
6118      </thead>
6119
6120      <tbody>
6121
6122        
6123
6124        
6125
6126        
6127
6128        
6129
6130                
6131          <tr class="entry" id="static_android.hotPixel.availableHotPixelModes">
6132            <td class="entry_name" rowspan="5">
6133              android.<wbr/>hot<wbr/>Pixel.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Modes
6134            </td>
6135            <td class="entry_type">
6136                <span class="entry_type_name">byte</span>
6137                <span class="entry_type_container">x</span>
6138
6139                <span class="entry_type_array">
6140                  n
6141                </span>
6142              <span class="entry_type_visibility"> [public]</span>
6143                <div class="entry_type_notes">list of enums</div>
6144
6145
6146            </td> <!-- entry_type -->
6147
6148            <td class="entry_description">
6149              <p>The set of hot pixel correction modes that are supported by this
6150camera device.<wbr/></p>
6151            </td>
6152
6153            <td class="entry_units">
6154            </td>
6155
6156            <td class="entry_range">
6157            </td>
6158
6159            <td class="entry_tags">
6160              <ul class="entry_tags">
6161                  <li><a href="#tag_ADV">ADV</a></li>
6162                  <li><a href="#tag_V1">V1</a></li>
6163                  <li><a href="#tag_DNG">DNG</a></li>
6164              </ul>
6165            </td>
6166
6167          </tr>
6168          <tr class="entries_header">
6169            <th class="th_details" colspan="5">Details</th>
6170          </tr>
6171          <tr class="entry_cont">
6172            <td class="entry_details" colspan="5">
6173              <p>This tag lists valid modes for <a href="#controls_android.hotPixel.mode">android.<wbr/>hot<wbr/>Pixel.<wbr/>mode</a>.<wbr/></p>
6174<p>FULL mode camera devices will always support FAST.<wbr/></p>
6175            </td>
6176          </tr>
6177
6178          <tr class="entries_header">
6179            <th class="th_details" colspan="5">HAL Implementation Details</th>
6180          </tr>
6181          <tr class="entry_cont">
6182            <td class="entry_details" colspan="5">
6183              <p>To avoid performance issues,<wbr/> there will be significantly fewer hot
6184pixels than actual pixels on the camera sensor.<wbr/></p>
6185            </td>
6186          </tr>
6187
6188          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6189           <!-- end of entry -->
6190        
6191        
6192
6193      <!-- end of kind -->
6194      </tbody>
6195      <tr><td colspan="6" class="kind">dynamic</td></tr>
6196
6197      <thead class="entries_header">
6198        <tr>
6199          <th class="th_name">Property Name</th>
6200          <th class="th_type">Type</th>
6201          <th class="th_description">Description</th>
6202          <th class="th_units">Units</th>
6203          <th class="th_range">Range</th>
6204          <th class="th_tags">Tags</th>
6205        </tr>
6206      </thead>
6207
6208      <tbody>
6209
6210        
6211
6212        
6213
6214        
6215
6216        
6217
6218                
6219          <tr class="entry" id="dynamic_android.hotPixel.mode">
6220            <td class="entry_name" rowspan="3">
6221              android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
6222            </td>
6223            <td class="entry_type">
6224                <span class="entry_type_name entry_type_name_enum">byte</span>
6225
6226              <span class="entry_type_visibility"> [public]</span>
6227
6228                <ul class="entry_type_enum">
6229                  <li>
6230                    <span class="entry_type_enum_name">OFF</span>
6231                    <span class="entry_type_enum_notes"><p>The frame rate must not be reduced relative to sensor raw output
6232for this option.<wbr/></p>
6233<p>No hot pixel correction is applied.<wbr/>
6234The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
6235                  </li>
6236                  <li>
6237                    <span class="entry_type_enum_name">FAST</span>
6238                    <span class="entry_type_enum_notes"><p>The frame rate must not be reduced relative to sensor raw output
6239for this option.<wbr/></p>
6240<p>Hot pixel correction is applied.<wbr/>
6241The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
6242                  </li>
6243                  <li>
6244                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
6245                    <span class="entry_type_enum_notes"><p>The frame rate may be reduced relative to sensor raw output
6246for this option.<wbr/></p>
6247<p>A high-quality hot pixel correction is applied.<wbr/>
6248The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
6249                  </li>
6250                </ul>
6251
6252            </td> <!-- entry_type -->
6253
6254            <td class="entry_description">
6255              <p>Set operational mode for hot pixel correction.<wbr/></p>
6256            </td>
6257
6258            <td class="entry_units">
6259            </td>
6260
6261            <td class="entry_range">
6262            </td>
6263
6264            <td class="entry_tags">
6265              <ul class="entry_tags">
6266                  <li><a href="#tag_V1">V1</a></li>
6267                  <li><a href="#tag_DNG">DNG</a></li>
6268              </ul>
6269            </td>
6270
6271          </tr>
6272          <tr class="entries_header">
6273            <th class="th_details" colspan="5">Details</th>
6274          </tr>
6275          <tr class="entry_cont">
6276            <td class="entry_details" colspan="5">
6277              <p>Valid modes for this camera device are listed in
6278<a href="#static_android.hotPixel.availableHotPixelModes">android.<wbr/>hot<wbr/>Pixel.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Modes</a>.<wbr/></p>
6279<p>Hotpixel correction interpolates out,<wbr/> or otherwise removes,<wbr/> pixels
6280that do not accurately encode the incoming light (i.<wbr/>e.<wbr/> pixels that
6281are stuck at an arbitrary value).<wbr/></p>
6282            </td>
6283          </tr>
6284
6285
6286          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6287           <!-- end of entry -->
6288        
6289        
6290
6291      <!-- end of kind -->
6292      </tbody>
6293
6294  <!-- end of section -->
6295  <tr><td colspan="6" id="section_jpeg" class="section">jpeg</td></tr>
6296
6297
6298      <tr><td colspan="6" class="kind">controls</td></tr>
6299
6300      <thead class="entries_header">
6301        <tr>
6302          <th class="th_name">Property Name</th>
6303          <th class="th_type">Type</th>
6304          <th class="th_description">Description</th>
6305          <th class="th_units">Units</th>
6306          <th class="th_range">Range</th>
6307          <th class="th_tags">Tags</th>
6308        </tr>
6309      </thead>
6310
6311      <tbody>
6312
6313        
6314
6315        
6316
6317        
6318
6319        
6320
6321                
6322          <tr class="entry" id="controls_android.jpeg.gpsCoordinates">
6323            <td class="entry_name" rowspan="1">
6324              android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
6325            </td>
6326            <td class="entry_type">
6327                <span class="entry_type_name">double</span>
6328                <span class="entry_type_container">x</span>
6329
6330                <span class="entry_type_array">
6331                  3
6332                </span>
6333              <span class="entry_type_visibility"> [public]</span>
6334                <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div>
6335
6336
6337            </td> <!-- entry_type -->
6338
6339            <td class="entry_description">
6340              <p>GPS coordinates to include in output JPEG
6341EXIF</p>
6342            </td>
6343
6344            <td class="entry_units">
6345            </td>
6346
6347            <td class="entry_range">
6348              <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
6349            </td>
6350
6351            <td class="entry_tags">
6352              <ul class="entry_tags">
6353                  <li><a href="#tag_BC">BC</a></li>
6354              </ul>
6355            </td>
6356
6357          </tr>
6358
6359
6360          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6361           <!-- end of entry -->
6362        
6363                
6364          <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod">
6365            <td class="entry_name" rowspan="1">
6366              android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
6367            </td>
6368            <td class="entry_type">
6369                <span class="entry_type_name">byte</span>
6370
6371              <span class="entry_type_visibility"> [public as string]</span>
6372
6373
6374            </td> <!-- entry_type -->
6375
6376            <td class="entry_description">
6377              <p>32 characters describing GPS algorithm to
6378include in EXIF</p>
6379            </td>
6380
6381            <td class="entry_units">
6382              UTF-8 null-terminated string
6383            </td>
6384
6385            <td class="entry_range">
6386            </td>
6387
6388            <td class="entry_tags">
6389              <ul class="entry_tags">
6390                  <li><a href="#tag_BC">BC</a></li>
6391              </ul>
6392            </td>
6393
6394          </tr>
6395
6396
6397          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6398           <!-- end of entry -->
6399        
6400                
6401          <tr class="entry" id="controls_android.jpeg.gpsTimestamp">
6402            <td class="entry_name" rowspan="1">
6403              android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
6404            </td>
6405            <td class="entry_type">
6406                <span class="entry_type_name">int64</span>
6407
6408              <span class="entry_type_visibility"> [public]</span>
6409
6410
6411            </td> <!-- entry_type -->
6412
6413            <td class="entry_description">
6414              <p>Time GPS fix was made to include in
6415EXIF</p>
6416            </td>
6417
6418            <td class="entry_units">
6419              UTC in seconds since January 1,<wbr/> 1970
6420            </td>
6421
6422            <td class="entry_range">
6423            </td>
6424
6425            <td class="entry_tags">
6426              <ul class="entry_tags">
6427                  <li><a href="#tag_BC">BC</a></li>
6428              </ul>
6429            </td>
6430
6431          </tr>
6432
6433
6434          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6435           <!-- end of entry -->
6436        
6437                
6438          <tr class="entry" id="controls_android.jpeg.orientation">
6439            <td class="entry_name" rowspan="1">
6440              android.<wbr/>jpeg.<wbr/>orientation
6441            </td>
6442            <td class="entry_type">
6443                <span class="entry_type_name">int32</span>
6444
6445              <span class="entry_type_visibility"> [public]</span>
6446
6447
6448            </td> <!-- entry_type -->
6449
6450            <td class="entry_description">
6451              <p>Orientation of JPEG image to
6452write</p>
6453            </td>
6454
6455            <td class="entry_units">
6456              Degrees in multiples of 90
6457            </td>
6458
6459            <td class="entry_range">
6460              <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
6461            </td>
6462
6463            <td class="entry_tags">
6464              <ul class="entry_tags">
6465                  <li><a href="#tag_BC">BC</a></li>
6466              </ul>
6467            </td>
6468
6469          </tr>
6470
6471
6472          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6473           <!-- end of entry -->
6474        
6475                
6476          <tr class="entry" id="controls_android.jpeg.quality">
6477            <td class="entry_name" rowspan="3">
6478              android.<wbr/>jpeg.<wbr/>quality
6479            </td>
6480            <td class="entry_type">
6481                <span class="entry_type_name">byte</span>
6482
6483              <span class="entry_type_visibility"> [public]</span>
6484
6485
6486            </td> <!-- entry_type -->
6487
6488            <td class="entry_description">
6489              <p>Compression quality of the final JPEG
6490image</p>
6491            </td>
6492
6493            <td class="entry_units">
6494            </td>
6495
6496            <td class="entry_range">
6497              <p>1-100; larger is higher quality</p>
6498            </td>
6499
6500            <td class="entry_tags">
6501              <ul class="entry_tags">
6502                  <li><a href="#tag_BC">BC</a></li>
6503              </ul>
6504            </td>
6505
6506          </tr>
6507          <tr class="entries_header">
6508            <th class="th_details" colspan="5">Details</th>
6509          </tr>
6510          <tr class="entry_cont">
6511            <td class="entry_details" colspan="5">
6512              <p>85-95 is typical usage range</p>
6513            </td>
6514          </tr>
6515
6516
6517          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6518           <!-- end of entry -->
6519        
6520                
6521          <tr class="entry" id="controls_android.jpeg.thumbnailQuality">
6522            <td class="entry_name" rowspan="1">
6523              android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
6524            </td>
6525            <td class="entry_type">
6526                <span class="entry_type_name">byte</span>
6527
6528              <span class="entry_type_visibility"> [public]</span>
6529
6530
6531            </td> <!-- entry_type -->
6532
6533            <td class="entry_description">
6534              <p>Compression quality of JPEG
6535thumbnail</p>
6536            </td>
6537
6538            <td class="entry_units">
6539            </td>
6540
6541            <td class="entry_range">
6542              <p>1-100; larger is higher quality</p>
6543            </td>
6544
6545            <td class="entry_tags">
6546              <ul class="entry_tags">
6547                  <li><a href="#tag_BC">BC</a></li>
6548              </ul>
6549            </td>
6550
6551          </tr>
6552
6553
6554          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6555           <!-- end of entry -->
6556        
6557                
6558          <tr class="entry" id="controls_android.jpeg.thumbnailSize">
6559            <td class="entry_name" rowspan="3">
6560              android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
6561            </td>
6562            <td class="entry_type">
6563                <span class="entry_type_name">int32</span>
6564                <span class="entry_type_container">x</span>
6565
6566                <span class="entry_type_array">
6567                  2
6568                </span>
6569              <span class="entry_type_visibility"> [public as size]</span>
6570
6571
6572            </td> <!-- entry_type -->
6573
6574            <td class="entry_description">
6575              <p>Resolution of embedded JPEG thumbnail</p>
6576            </td>
6577
6578            <td class="entry_units">
6579            </td>
6580
6581            <td class="entry_range">
6582              <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>
6583            </td>
6584
6585            <td class="entry_tags">
6586              <ul class="entry_tags">
6587                  <li><a href="#tag_BC">BC</a></li>
6588              </ul>
6589            </td>
6590
6591          </tr>
6592          <tr class="entries_header">
6593            <th class="th_details" colspan="5">Details</th>
6594          </tr>
6595          <tr class="entry_cont">
6596            <td class="entry_details" colspan="5">
6597              <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6598but the captured JPEG will still be a valid image.<wbr/></p>
6599<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6600the same aspect ratio as the jpeg image.<wbr/></p>
6601            </td>
6602          </tr>
6603
6604
6605          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6606           <!-- end of entry -->
6607        
6608        
6609
6610      <!-- end of kind -->
6611      </tbody>
6612      <tr><td colspan="6" class="kind">static</td></tr>
6613
6614      <thead class="entries_header">
6615        <tr>
6616          <th class="th_name">Property Name</th>
6617          <th class="th_type">Type</th>
6618          <th class="th_description">Description</th>
6619          <th class="th_units">Units</th>
6620          <th class="th_range">Range</th>
6621          <th class="th_tags">Tags</th>
6622        </tr>
6623      </thead>
6624
6625      <tbody>
6626
6627        
6628
6629        
6630
6631        
6632
6633        
6634
6635                
6636          <tr class="entry" id="static_android.jpeg.availableThumbnailSizes">
6637            <td class="entry_name" rowspan="3">
6638              android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes
6639            </td>
6640            <td class="entry_type">
6641                <span class="entry_type_name">int32</span>
6642                <span class="entry_type_container">x</span>
6643
6644                <span class="entry_type_array">
6645                  2 x n
6646                </span>
6647              <span class="entry_type_visibility"> [public as size]</span>
6648
6649
6650            </td> <!-- entry_type -->
6651
6652            <td class="entry_description">
6653              <p>Supported resolutions for the JPEG thumbnail</p>
6654            </td>
6655
6656            <td class="entry_units">
6657            </td>
6658
6659            <td class="entry_range">
6660              <p>Will include at least one valid resolution,<wbr/> plus
6661(0,<wbr/>0) for no thumbnail generation,<wbr/> and each size will be distinct.<wbr/></p>
6662            </td>
6663
6664            <td class="entry_tags">
6665              <ul class="entry_tags">
6666                  <li><a href="#tag_BC">BC</a></li>
6667              </ul>
6668            </td>
6669
6670          </tr>
6671          <tr class="entries_header">
6672            <th class="th_details" colspan="5">Details</th>
6673          </tr>
6674          <tr class="entry_cont">
6675            <td class="entry_details" colspan="5">
6676              <p>Below condiditions will be satisfied for this size list:</p>
6677<ul>
6678<li>The sizes will be sorted by increasing pixel area (width x height).<wbr/>
6679If several resolutions have the same area,<wbr/> they will be sorted by increasing width.<wbr/></li>
6680<li>The aspect ratio of the largest thumbnail size will be same as the
6681aspect ratio of largest JPEG output size in <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a>.<wbr/>
6682The largest size is defined as the size that has the largest pixel area
6683in a given size list.<wbr/></li>
6684<li>Each output JPEG size in <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a> will have at least
6685one corresponding size that has the same aspect ratio in availableThumbnailSizes,<wbr/>
6686and vice versa.<wbr/></li>
6687<li>All non (0,<wbr/> 0) sizes will have non-zero widths and heights.<wbr/></li>
6688</ul>
6689            </td>
6690          </tr>
6691
6692
6693          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6694           <!-- end of entry -->
6695        
6696                
6697          <tr class="entry" id="static_android.jpeg.maxSize">
6698            <td class="entry_name" rowspan="3">
6699              android.<wbr/>jpeg.<wbr/>max<wbr/>Size
6700            </td>
6701            <td class="entry_type">
6702                <span class="entry_type_name">int32</span>
6703
6704              <span class="entry_type_visibility"> [system]</span>
6705
6706
6707            </td> <!-- entry_type -->
6708
6709            <td class="entry_description">
6710              <p>Maximum size in bytes for the compressed
6711JPEG buffer</p>
6712            </td>
6713
6714            <td class="entry_units">
6715            </td>
6716
6717            <td class="entry_range">
6718              <p>Must be large enough to fit any JPEG produced by
6719the camera</p>
6720            </td>
6721
6722            <td class="entry_tags">
6723            </td>
6724
6725          </tr>
6726          <tr class="entries_header">
6727            <th class="th_details" colspan="5">Details</th>
6728          </tr>
6729          <tr class="entry_cont">
6730            <td class="entry_details" colspan="5">
6731              <p>This is used for sizing the gralloc buffers for
6732JPEG</p>
6733            </td>
6734          </tr>
6735
6736
6737          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6738           <!-- end of entry -->
6739        
6740        
6741
6742      <!-- end of kind -->
6743      </tbody>
6744      <tr><td colspan="6" class="kind">dynamic</td></tr>
6745
6746      <thead class="entries_header">
6747        <tr>
6748          <th class="th_name">Property Name</th>
6749          <th class="th_type">Type</th>
6750          <th class="th_description">Description</th>
6751          <th class="th_units">Units</th>
6752          <th class="th_range">Range</th>
6753          <th class="th_tags">Tags</th>
6754        </tr>
6755      </thead>
6756
6757      <tbody>
6758
6759        
6760
6761        
6762
6763        
6764
6765        
6766
6767                
6768          <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates">
6769            <td class="entry_name" rowspan="1">
6770              android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
6771            </td>
6772            <td class="entry_type">
6773                <span class="entry_type_name">double</span>
6774                <span class="entry_type_container">x</span>
6775
6776                <span class="entry_type_array">
6777                  3
6778                </span>
6779              <span class="entry_type_visibility"> [public]</span>
6780                <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div>
6781
6782
6783            </td> <!-- entry_type -->
6784
6785            <td class="entry_description">
6786              <p>GPS coordinates to include in output JPEG
6787EXIF</p>
6788            </td>
6789
6790            <td class="entry_units">
6791            </td>
6792
6793            <td class="entry_range">
6794              <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
6795            </td>
6796
6797            <td class="entry_tags">
6798              <ul class="entry_tags">
6799                  <li><a href="#tag_BC">BC</a></li>
6800              </ul>
6801            </td>
6802
6803          </tr>
6804
6805
6806          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6807           <!-- end of entry -->
6808        
6809                
6810          <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod">
6811            <td class="entry_name" rowspan="1">
6812              android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
6813            </td>
6814            <td class="entry_type">
6815                <span class="entry_type_name">byte</span>
6816
6817              <span class="entry_type_visibility"> [public as string]</span>
6818
6819
6820            </td> <!-- entry_type -->
6821
6822            <td class="entry_description">
6823              <p>32 characters describing GPS algorithm to
6824include in EXIF</p>
6825            </td>
6826
6827            <td class="entry_units">
6828              UTF-8 null-terminated string
6829            </td>
6830
6831            <td class="entry_range">
6832            </td>
6833
6834            <td class="entry_tags">
6835              <ul class="entry_tags">
6836                  <li><a href="#tag_BC">BC</a></li>
6837              </ul>
6838            </td>
6839
6840          </tr>
6841
6842
6843          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6844           <!-- end of entry -->
6845        
6846                
6847          <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp">
6848            <td class="entry_name" rowspan="1">
6849              android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
6850            </td>
6851            <td class="entry_type">
6852                <span class="entry_type_name">int64</span>
6853
6854              <span class="entry_type_visibility"> [public]</span>
6855
6856
6857            </td> <!-- entry_type -->
6858
6859            <td class="entry_description">
6860              <p>Time GPS fix was made to include in
6861EXIF</p>
6862            </td>
6863
6864            <td class="entry_units">
6865              UTC in seconds since January 1,<wbr/> 1970
6866            </td>
6867
6868            <td class="entry_range">
6869            </td>
6870
6871            <td class="entry_tags">
6872              <ul class="entry_tags">
6873                  <li><a href="#tag_BC">BC</a></li>
6874              </ul>
6875            </td>
6876
6877          </tr>
6878
6879
6880          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6881           <!-- end of entry -->
6882        
6883                
6884          <tr class="entry" id="dynamic_android.jpeg.orientation">
6885            <td class="entry_name" rowspan="1">
6886              android.<wbr/>jpeg.<wbr/>orientation
6887            </td>
6888            <td class="entry_type">
6889                <span class="entry_type_name">int32</span>
6890
6891              <span class="entry_type_visibility"> [public]</span>
6892
6893
6894            </td> <!-- entry_type -->
6895
6896            <td class="entry_description">
6897              <p>Orientation of JPEG image to
6898write</p>
6899            </td>
6900
6901            <td class="entry_units">
6902              Degrees in multiples of 90
6903            </td>
6904
6905            <td class="entry_range">
6906              <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
6907            </td>
6908
6909            <td class="entry_tags">
6910              <ul class="entry_tags">
6911                  <li><a href="#tag_BC">BC</a></li>
6912              </ul>
6913            </td>
6914
6915          </tr>
6916
6917
6918          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6919           <!-- end of entry -->
6920        
6921                
6922          <tr class="entry" id="dynamic_android.jpeg.quality">
6923            <td class="entry_name" rowspan="3">
6924              android.<wbr/>jpeg.<wbr/>quality
6925            </td>
6926            <td class="entry_type">
6927                <span class="entry_type_name">byte</span>
6928
6929              <span class="entry_type_visibility"> [public]</span>
6930
6931
6932            </td> <!-- entry_type -->
6933
6934            <td class="entry_description">
6935              <p>Compression quality of the final JPEG
6936image</p>
6937            </td>
6938
6939            <td class="entry_units">
6940            </td>
6941
6942            <td class="entry_range">
6943              <p>1-100; larger is higher quality</p>
6944            </td>
6945
6946            <td class="entry_tags">
6947              <ul class="entry_tags">
6948                  <li><a href="#tag_BC">BC</a></li>
6949              </ul>
6950            </td>
6951
6952          </tr>
6953          <tr class="entries_header">
6954            <th class="th_details" colspan="5">Details</th>
6955          </tr>
6956          <tr class="entry_cont">
6957            <td class="entry_details" colspan="5">
6958              <p>85-95 is typical usage range</p>
6959            </td>
6960          </tr>
6961
6962
6963          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6964           <!-- end of entry -->
6965        
6966                
6967          <tr class="entry" id="dynamic_android.jpeg.size">
6968            <td class="entry_name" rowspan="3">
6969              android.<wbr/>jpeg.<wbr/>size
6970            </td>
6971            <td class="entry_type">
6972                <span class="entry_type_name">int32</span>
6973
6974              <span class="entry_type_visibility"> [system]</span>
6975
6976
6977            </td> <!-- entry_type -->
6978
6979            <td class="entry_description">
6980              <p>The size of the compressed JPEG image,<wbr/> in
6981bytes</p>
6982            </td>
6983
6984            <td class="entry_units">
6985            </td>
6986
6987            <td class="entry_range">
6988              <p>&gt;= 0</p>
6989            </td>
6990
6991            <td class="entry_tags">
6992            </td>
6993
6994          </tr>
6995          <tr class="entries_header">
6996            <th class="th_details" colspan="5">Details</th>
6997          </tr>
6998          <tr class="entry_cont">
6999            <td class="entry_details" colspan="5">
7000              <p>If no JPEG output is produced for the request,<wbr/>
7001this must be 0.<wbr/></p>
7002<p>Otherwise,<wbr/> this describes the real size of the compressed
7003JPEG image placed in the output stream.<wbr/>  More specifically,<wbr/>
7004if <a href="#static_android.jpeg.maxSize">android.<wbr/>jpeg.<wbr/>max<wbr/>Size</a> = 1000000,<wbr/> and a specific capture
7005has <a href="#dynamic_android.jpeg.size">android.<wbr/>jpeg.<wbr/>size</a> = 500000,<wbr/> then the output buffer from
7006the JPEG stream will be 1000000 bytes,<wbr/> of which the first
7007500000 make up the real data.<wbr/></p>
7008            </td>
7009          </tr>
7010
7011
7012          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7013           <!-- end of entry -->
7014        
7015                
7016          <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality">
7017            <td class="entry_name" rowspan="1">
7018              android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
7019            </td>
7020            <td class="entry_type">
7021                <span class="entry_type_name">byte</span>
7022
7023              <span class="entry_type_visibility"> [public]</span>
7024
7025
7026            </td> <!-- entry_type -->
7027
7028            <td class="entry_description">
7029              <p>Compression quality of JPEG
7030thumbnail</p>
7031            </td>
7032
7033            <td class="entry_units">
7034            </td>
7035
7036            <td class="entry_range">
7037              <p>1-100; larger is higher quality</p>
7038            </td>
7039
7040            <td class="entry_tags">
7041              <ul class="entry_tags">
7042                  <li><a href="#tag_BC">BC</a></li>
7043              </ul>
7044            </td>
7045
7046          </tr>
7047
7048
7049          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7050           <!-- end of entry -->
7051        
7052                
7053          <tr class="entry" id="dynamic_android.jpeg.thumbnailSize">
7054            <td class="entry_name" rowspan="3">
7055              android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
7056            </td>
7057            <td class="entry_type">
7058                <span class="entry_type_name">int32</span>
7059                <span class="entry_type_container">x</span>
7060
7061                <span class="entry_type_array">
7062                  2
7063                </span>
7064              <span class="entry_type_visibility"> [public as size]</span>
7065
7066
7067            </td> <!-- entry_type -->
7068
7069            <td class="entry_description">
7070              <p>Resolution of embedded JPEG thumbnail</p>
7071            </td>
7072
7073            <td class="entry_units">
7074            </td>
7075
7076            <td class="entry_range">
7077              <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>
7078            </td>
7079
7080            <td class="entry_tags">
7081              <ul class="entry_tags">
7082                  <li><a href="#tag_BC">BC</a></li>
7083              </ul>
7084            </td>
7085
7086          </tr>
7087          <tr class="entries_header">
7088            <th class="th_details" colspan="5">Details</th>
7089          </tr>
7090          <tr class="entry_cont">
7091            <td class="entry_details" colspan="5">
7092              <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
7093but the captured JPEG will still be a valid image.<wbr/></p>
7094<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
7095the same aspect ratio as the jpeg image.<wbr/></p>
7096            </td>
7097          </tr>
7098
7099
7100          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7101           <!-- end of entry -->
7102        
7103        
7104
7105      <!-- end of kind -->
7106      </tbody>
7107
7108  <!-- end of section -->
7109  <tr><td colspan="6" id="section_lens" class="section">lens</td></tr>
7110
7111
7112      <tr><td colspan="6" class="kind">controls</td></tr>
7113
7114      <thead class="entries_header">
7115        <tr>
7116          <th class="th_name">Property Name</th>
7117          <th class="th_type">Type</th>
7118          <th class="th_description">Description</th>
7119          <th class="th_units">Units</th>
7120          <th class="th_range">Range</th>
7121          <th class="th_tags">Tags</th>
7122        </tr>
7123      </thead>
7124
7125      <tbody>
7126
7127        
7128
7129        
7130
7131        
7132
7133        
7134
7135                
7136          <tr class="entry" id="controls_android.lens.aperture">
7137            <td class="entry_name" rowspan="3">
7138              android.<wbr/>lens.<wbr/>aperture
7139            </td>
7140            <td class="entry_type">
7141                <span class="entry_type_name">float</span>
7142
7143              <span class="entry_type_visibility"> [public]</span>
7144
7145
7146            </td> <!-- entry_type -->
7147
7148            <td class="entry_description">
7149              <p>The ratio of lens focal length to the effective
7150aperture diameter.<wbr/></p>
7151            </td>
7152
7153            <td class="entry_units">
7154              f-number (f/<wbr/>NNN)
7155            </td>
7156
7157            <td class="entry_range">
7158              <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p>
7159            </td>
7160
7161            <td class="entry_tags">
7162              <ul class="entry_tags">
7163                  <li><a href="#tag_V1">V1</a></li>
7164              </ul>
7165            </td>
7166
7167          </tr>
7168          <tr class="entries_header">
7169            <th class="th_details" colspan="5">Details</th>
7170          </tr>
7171          <tr class="entry_cont">
7172            <td class="entry_details" colspan="5">
7173              <p>This will only be supported on the camera devices that
7174have variable aperture lens.<wbr/> The aperture value can only be
7175one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
7176<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
7177this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
7178<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>
7179to achieve manual exposure control.<wbr/></p>
7180<p>The requested aperture value may take several frames to reach the
7181requested value; the camera device will report the current (intermediate)
7182aperture size in capture result metadata while the aperture is changing.<wbr/>
7183While the aperture is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
7184<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
7185the ON modes,<wbr/> this will be overridden by the camera device
7186auto-exposure algorithm,<wbr/> the overridden values are then provided
7187back to the user in the corresponding result.<wbr/></p>
7188            </td>
7189          </tr>
7190
7191
7192          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7193           <!-- end of entry -->
7194        
7195                
7196          <tr class="entry" id="controls_android.lens.filterDensity">
7197            <td class="entry_name" rowspan="3">
7198              android.<wbr/>lens.<wbr/>filter<wbr/>Density
7199            </td>
7200            <td class="entry_type">
7201                <span class="entry_type_name">float</span>
7202
7203              <span class="entry_type_visibility"> [public]</span>
7204
7205
7206            </td> <!-- entry_type -->
7207
7208            <td class="entry_description">
7209              <p>State of lens neutral density filter(s).<wbr/></p>
7210            </td>
7211
7212            <td class="entry_units">
7213              Steps of Exposure Value (EV).<wbr/>
7214            </td>
7215
7216            <td class="entry_range">
7217              <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p>
7218            </td>
7219
7220            <td class="entry_tags">
7221              <ul class="entry_tags">
7222                  <li><a href="#tag_V1">V1</a></li>
7223              </ul>
7224            </td>
7225
7226          </tr>
7227          <tr class="entries_header">
7228            <th class="th_details" colspan="5">Details</th>
7229          </tr>
7230          <tr class="entry_cont">
7231            <td class="entry_details" colspan="5">
7232              <p>This will not be supported on most camera devices.<wbr/> On devices
7233where this is supported,<wbr/> this may only be set to one of the
7234values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
7235<p>Lens filters are typically used to lower the amount of light the
7236sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
7237step is the standard logarithmic representation,<wbr/> which are
7238non-negative,<wbr/> and inversely proportional to the amount of light
7239hitting the sensor.<wbr/>  For example,<wbr/> setting this to 0 would result
7240in no reduction of the incoming light,<wbr/> and setting this to 2 would
7241mean that the filter is set to reduce incoming light by two stops
7242(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
7243<p>It may take several frames before the lens filter density changes
7244to the requested value.<wbr/> While the filter density is still changing,<wbr/>
7245<a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
7246            </td>
7247          </tr>
7248
7249
7250          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7251           <!-- end of entry -->
7252        
7253                
7254          <tr class="entry" id="controls_android.lens.focalLength">
7255            <td class="entry_name" rowspan="3">
7256              android.<wbr/>lens.<wbr/>focal<wbr/>Length
7257            </td>
7258            <td class="entry_type">
7259                <span class="entry_type_name">float</span>
7260
7261              <span class="entry_type_visibility"> [public]</span>
7262
7263
7264            </td> <!-- entry_type -->
7265
7266            <td class="entry_description">
7267              <p>The current lens focal length; used for optical zoom.<wbr/></p>
7268            </td>
7269
7270            <td class="entry_units">
7271              focal length in mm
7272            </td>
7273
7274            <td class="entry_range">
7275              <p><a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a></p>
7276            </td>
7277
7278            <td class="entry_tags">
7279              <ul class="entry_tags">
7280                  <li><a href="#tag_V1">V1</a></li>
7281              </ul>
7282            </td>
7283
7284          </tr>
7285          <tr class="entries_header">
7286            <th class="th_details" colspan="5">Details</th>
7287          </tr>
7288          <tr class="entry_cont">
7289            <td class="entry_details" colspan="5">
7290              <p>This setting controls the physical focal length of the camera
7291device's lens.<wbr/> Changing the focal length changes the field of
7292view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7293<p>Like <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>,<wbr/> this
7294setting won't be applied instantaneously,<wbr/> and it may take several
7295frames before the lens can change to the requested focal length.<wbr/>
7296While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7297be set to MOVING.<wbr/></p>
7298<p>This is expected not to be supported on most devices.<wbr/></p>
7299            </td>
7300          </tr>
7301
7302
7303          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7304           <!-- end of entry -->
7305        
7306                
7307          <tr class="entry" id="controls_android.lens.focusDistance">
7308            <td class="entry_name" rowspan="3">
7309              android.<wbr/>lens.<wbr/>focus<wbr/>Distance
7310            </td>
7311            <td class="entry_type">
7312                <span class="entry_type_name">float</span>
7313
7314              <span class="entry_type_visibility"> [public]</span>
7315
7316
7317            </td> <!-- entry_type -->
7318
7319            <td class="entry_description">
7320              <p>Distance to plane of sharpest focus,<wbr/>
7321measured from frontmost surface of the lens</p>
7322            </td>
7323
7324            <td class="entry_units">
7325              See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
7326            </td>
7327
7328            <td class="entry_range">
7329              <p>&gt;= 0</p>
7330            </td>
7331
7332            <td class="entry_tags">
7333              <ul class="entry_tags">
7334                  <li><a href="#tag_BC">BC</a></li>
7335                  <li><a href="#tag_V1">V1</a></li>
7336              </ul>
7337            </td>
7338
7339          </tr>
7340          <tr class="entries_header">
7341            <th class="th_details" colspan="5">Details</th>
7342          </tr>
7343          <tr class="entry_cont">
7344            <td class="entry_details" colspan="5">
7345              <p>0 means infinity focus.<wbr/> Used value will be clamped
7346to [0,<wbr/> <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>].<wbr/></p>
7347<p>Like <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> this setting won't be applied
7348instantaneously,<wbr/> and it may take several frames before the lens
7349can move to the requested focus distance.<wbr/> While the lens is still moving,<wbr/>
7350<a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
7351            </td>
7352          </tr>
7353
7354
7355          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7356           <!-- end of entry -->
7357        
7358                
7359          <tr class="entry" id="controls_android.lens.opticalStabilizationMode">
7360            <td class="entry_name" rowspan="3">
7361              android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
7362            </td>
7363            <td class="entry_type">
7364                <span class="entry_type_name entry_type_name_enum">byte</span>
7365
7366              <span class="entry_type_visibility"> [public]</span>
7367
7368                <ul class="entry_type_enum">
7369                  <li>
7370                    <span class="entry_type_enum_name">OFF</span>
7371                    <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
7372                  </li>
7373                  <li>
7374                    <span class="entry_type_enum_name">ON</span>
7375                    <span class="entry_type_enum_optional">optional</span>
7376                    <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
7377                  </li>
7378                </ul>
7379
7380            </td> <!-- entry_type -->
7381
7382            <td class="entry_description">
7383              <p>Sets whether the camera device uses optical image stabilization (OIS)
7384when capturing images.<wbr/></p>
7385            </td>
7386
7387            <td class="entry_units">
7388            </td>
7389
7390            <td class="entry_range">
7391              <p><a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a></p>
7392            </td>
7393
7394            <td class="entry_tags">
7395              <ul class="entry_tags">
7396                  <li><a href="#tag_V1">V1</a></li>
7397              </ul>
7398            </td>
7399
7400          </tr>
7401          <tr class="entries_header">
7402            <th class="th_details" colspan="5">Details</th>
7403          </tr>
7404          <tr class="entry_cont">
7405            <td class="entry_details" colspan="5">
7406              <p>OIS is used to compensate for motion blur due to small movements of
7407the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
7408use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
7409allows for longer exposure times before camera shake becomes
7410apparent.<wbr/></p>
7411<p>This is not expected to be supported on most devices.<wbr/></p>
7412            </td>
7413          </tr>
7414
7415
7416          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7417           <!-- end of entry -->
7418        
7419        
7420
7421      <!-- end of kind -->
7422      </tbody>
7423      <tr><td colspan="6" class="kind">static</td></tr>
7424
7425      <thead class="entries_header">
7426        <tr>
7427          <th class="th_name">Property Name</th>
7428          <th class="th_type">Type</th>
7429          <th class="th_description">Description</th>
7430          <th class="th_units">Units</th>
7431          <th class="th_range">Range</th>
7432          <th class="th_tags">Tags</th>
7433        </tr>
7434      </thead>
7435
7436      <tbody>
7437
7438        
7439
7440        
7441
7442        
7443
7444        
7445                
7446            
7447
7448                
7449          <tr class="entry" id="static_android.lens.info.availableApertures">
7450            <td class="entry_name" rowspan="3">
7451              android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures
7452            </td>
7453            <td class="entry_type">
7454                <span class="entry_type_name">float</span>
7455                <span class="entry_type_container">x</span>
7456
7457                <span class="entry_type_array">
7458                  n
7459                </span>
7460              <span class="entry_type_visibility"> [public]</span>
7461
7462
7463            </td> <!-- entry_type -->
7464
7465            <td class="entry_description">
7466              <p>List of supported aperture
7467values.<wbr/></p>
7468            </td>
7469
7470            <td class="entry_units">
7471            </td>
7472
7473            <td class="entry_range">
7474              <p>one entry required,<wbr/> &gt; 0</p>
7475            </td>
7476
7477            <td class="entry_tags">
7478              <ul class="entry_tags">
7479                  <li><a href="#tag_V1">V1</a></li>
7480              </ul>
7481            </td>
7482
7483          </tr>
7484          <tr class="entries_header">
7485            <th class="th_details" colspan="5">Details</th>
7486          </tr>
7487          <tr class="entry_cont">
7488            <td class="entry_details" colspan="5">
7489              <p>If the camera device doesn't support variable apertures,<wbr/>
7490listed value will be the fixed aperture.<wbr/></p>
7491<p>If the camera device supports variable apertures,<wbr/> the aperture value
7492in this list will be sorted in ascending order.<wbr/></p>
7493            </td>
7494          </tr>
7495
7496
7497          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7498           <!-- end of entry -->
7499        
7500                
7501          <tr class="entry" id="static_android.lens.info.availableFilterDensities">
7502            <td class="entry_name" rowspan="3">
7503              android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities
7504            </td>
7505            <td class="entry_type">
7506                <span class="entry_type_name">float</span>
7507                <span class="entry_type_container">x</span>
7508
7509                <span class="entry_type_array">
7510                  n
7511                </span>
7512              <span class="entry_type_visibility"> [public]</span>
7513
7514
7515            </td> <!-- entry_type -->
7516
7517            <td class="entry_description">
7518              <p>List of supported neutral density filter values for
7519<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a>.<wbr/></p>
7520            </td>
7521
7522            <td class="entry_units">
7523            </td>
7524
7525            <td class="entry_range">
7526              <p>At least one value is required.<wbr/> Values must be &gt;= 0.<wbr/></p>
7527            </td>
7528
7529            <td class="entry_tags">
7530              <ul class="entry_tags">
7531                  <li><a href="#tag_V1">V1</a></li>
7532              </ul>
7533            </td>
7534
7535          </tr>
7536          <tr class="entries_header">
7537            <th class="th_details" colspan="5">Details</th>
7538          </tr>
7539          <tr class="entry_cont">
7540            <td class="entry_details" colspan="5">
7541              <p>If changing <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> is not supported,<wbr/>
7542availableFilterDensities must contain only 0.<wbr/> Otherwise,<wbr/> this
7543list contains only the exact filter density values available on
7544this camera device.<wbr/></p>
7545            </td>
7546          </tr>
7547
7548
7549          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7550           <!-- end of entry -->
7551        
7552                
7553          <tr class="entry" id="static_android.lens.info.availableFocalLengths">
7554            <td class="entry_name" rowspan="3">
7555              android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths
7556            </td>
7557            <td class="entry_type">
7558                <span class="entry_type_name">float</span>
7559                <span class="entry_type_container">x</span>
7560
7561                <span class="entry_type_array">
7562                  n
7563                </span>
7564              <span class="entry_type_visibility"> [public]</span>
7565                <div class="entry_type_notes">The list of available focal lengths</div>
7566
7567
7568            </td> <!-- entry_type -->
7569
7570            <td class="entry_description">
7571              <p>The available focal lengths for this device for use with
7572<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>.<wbr/></p>
7573            </td>
7574
7575            <td class="entry_units">
7576            </td>
7577
7578            <td class="entry_range">
7579              <p>Each value in this list must be &gt; 0.<wbr/> This list must
7580contain at least one value.<wbr/></p>
7581            </td>
7582
7583            <td class="entry_tags">
7584              <ul class="entry_tags">
7585                  <li><a href="#tag_BC">BC</a></li>
7586                  <li><a href="#tag_V1">V1</a></li>
7587              </ul>
7588            </td>
7589
7590          </tr>
7591          <tr class="entries_header">
7592            <th class="th_details" colspan="5">Details</th>
7593          </tr>
7594          <tr class="entry_cont">
7595            <td class="entry_details" colspan="5">
7596              <p>If optical zoom is not supported,<wbr/> this will only report
7597a single value corresponding to the static focal length of the
7598device.<wbr/> Otherwise,<wbr/> this will report every focal length supported
7599by the device.<wbr/></p>
7600            </td>
7601          </tr>
7602
7603
7604          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7605           <!-- end of entry -->
7606        
7607                
7608          <tr class="entry" id="static_android.lens.info.availableOpticalStabilization">
7609            <td class="entry_name" rowspan="3">
7610              android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization
7611            </td>
7612            <td class="entry_type">
7613                <span class="entry_type_name">byte</span>
7614                <span class="entry_type_container">x</span>
7615
7616                <span class="entry_type_array">
7617                  n
7618                </span>
7619              <span class="entry_type_visibility"> [public]</span>
7620                <div class="entry_type_notes">list of enums</div>
7621
7622
7623            </td> <!-- entry_type -->
7624
7625            <td class="entry_description">
7626              <p>List containing a subset of the optical image
7627stabilization (OIS) modes specified in
7628<a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a>.<wbr/></p>
7629            </td>
7630
7631            <td class="entry_units">
7632            </td>
7633
7634            <td class="entry_range">
7635            </td>
7636
7637            <td class="entry_tags">
7638              <ul class="entry_tags">
7639                  <li><a href="#tag_V1">V1</a></li>
7640              </ul>
7641            </td>
7642
7643          </tr>
7644          <tr class="entries_header">
7645            <th class="th_details" colspan="5">Details</th>
7646          </tr>
7647          <tr class="entry_cont">
7648            <td class="entry_details" colspan="5">
7649              <p>If OIS is not implemented for a given camera device,<wbr/> this should
7650contain only OFF.<wbr/></p>
7651            </td>
7652          </tr>
7653
7654
7655          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7656           <!-- end of entry -->
7657        
7658                
7659          <tr class="entry" id="static_android.lens.info.hyperfocalDistance">
7660            <td class="entry_name" rowspan="3">
7661              android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance
7662            </td>
7663            <td class="entry_type">
7664                <span class="entry_type_name">float</span>
7665
7666              <span class="entry_type_visibility"> [public]</span>
7667
7668
7669            </td> <!-- entry_type -->
7670
7671            <td class="entry_description">
7672              <p>Optional.<wbr/> Hyperfocal distance for this lens.<wbr/></p>
7673            </td>
7674
7675            <td class="entry_units">
7676              See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
7677            </td>
7678
7679            <td class="entry_range">
7680              <p>&gt;= 0</p>
7681            </td>
7682
7683            <td class="entry_tags">
7684            </td>
7685
7686          </tr>
7687          <tr class="entries_header">
7688            <th class="th_details" colspan="5">Details</th>
7689          </tr>
7690          <tr class="entry_cont">
7691            <td class="entry_details" colspan="5">
7692              <p>If the lens is fixed focus,<wbr/> the camera device will report 0.<wbr/></p>
7693<p>If the lens is not fixed focus,<wbr/> the camera device will report this
7694field when <a href="#static_android.lens.info.focusDistanceCalibration">android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration</a> is APPROXIMATE or CALIBRATED.<wbr/></p>
7695            </td>
7696          </tr>
7697
7698
7699          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7700           <!-- end of entry -->
7701        
7702                
7703          <tr class="entry" id="static_android.lens.info.minimumFocusDistance">
7704            <td class="entry_name" rowspan="3">
7705              android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance
7706            </td>
7707            <td class="entry_type">
7708                <span class="entry_type_name">float</span>
7709
7710              <span class="entry_type_visibility"> [public]</span>
7711
7712
7713            </td> <!-- entry_type -->
7714
7715            <td class="entry_description">
7716              <p>Shortest distance from frontmost surface
7717of the lens that can be focused correctly.<wbr/></p>
7718            </td>
7719
7720            <td class="entry_units">
7721              See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
7722            </td>
7723
7724            <td class="entry_range">
7725              <p>&gt;= 0</p>
7726            </td>
7727
7728            <td class="entry_tags">
7729              <ul class="entry_tags">
7730                  <li><a href="#tag_V1">V1</a></li>
7731              </ul>
7732            </td>
7733
7734          </tr>
7735          <tr class="entries_header">
7736            <th class="th_details" colspan="5">Details</th>
7737          </tr>
7738          <tr class="entry_cont">
7739            <td class="entry_details" colspan="5">
7740              <p>If the lens is fixed-focus,<wbr/> this should be
77410.<wbr/></p>
7742            </td>
7743          </tr>
7744
7745
7746          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7747           <!-- end of entry -->
7748        
7749                
7750          <tr class="entry" id="static_android.lens.info.shadingMapSize">
7751            <td class="entry_name" rowspan="3">
7752              android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size
7753            </td>
7754            <td class="entry_type">
7755                <span class="entry_type_name">int32</span>
7756                <span class="entry_type_container">x</span>
7757
7758                <span class="entry_type_array">
7759                  2
7760                </span>
7761              <span class="entry_type_visibility"> [public as size]</span>
7762                <div class="entry_type_notes">width and height (N,<wbr/> M) of lens shading map provided by the camera device.<wbr/></div>
7763
7764
7765            </td> <!-- entry_type -->
7766
7767            <td class="entry_description">
7768              <p>Dimensions of lens shading map.<wbr/></p>
7769            </td>
7770
7771            <td class="entry_units">
7772            </td>
7773
7774            <td class="entry_range">
7775              <p>Both values &gt;= 1</p>
7776            </td>
7777
7778            <td class="entry_tags">
7779              <ul class="entry_tags">
7780                  <li><a href="#tag_V1">V1</a></li>
7781              </ul>
7782            </td>
7783
7784          </tr>
7785          <tr class="entries_header">
7786            <th class="th_details" colspan="5">Details</th>
7787          </tr>
7788          <tr class="entry_cont">
7789            <td class="entry_details" colspan="5">
7790              <p>The map should be on the order of 30-40 rows and columns,<wbr/> and
7791must be smaller than 64x64.<wbr/></p>
7792            </td>
7793          </tr>
7794
7795
7796          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7797           <!-- end of entry -->
7798        
7799                
7800          <tr class="entry" id="static_android.lens.info.focusDistanceCalibration">
7801            <td class="entry_name" rowspan="3">
7802              android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration
7803            </td>
7804            <td class="entry_type">
7805                <span class="entry_type_name entry_type_name_enum">byte</span>
7806
7807              <span class="entry_type_visibility"> [public]</span>
7808
7809                <ul class="entry_type_enum">
7810                  <li>
7811                    <span class="entry_type_enum_name">UNCALIBRATED</span>
7812                    <span class="entry_type_enum_notes"><p>The lens focus distance is not accurate,<wbr/> and the units used for
7813<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> do not correspond to any physical units.<wbr/>
7814Setting the lens to the same focus distance on separate occasions may
7815result in a different real focus distance,<wbr/> depending on factors such
7816as the orientation of the device,<wbr/> the age of the focusing mechanism,<wbr/>
7817and the device temperature.<wbr/> The focus distance value will still be
7818in the range of <code>[0,<wbr/> <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>]</code>,<wbr/> where 0
7819represents the farthest focus.<wbr/></p></span>
7820                  </li>
7821                  <li>
7822                    <span class="entry_type_enum_name">APPROXIMATE</span>
7823                    <span class="entry_type_enum_notes"><p>The lens focus distance is measured in diopters.<wbr/> However,<wbr/> setting the lens
7824to the same focus distance on separate occasions may result in a
7825different real focus distance,<wbr/> depending on factors such as the
7826orientation of the device,<wbr/> the age of the focusing mechanism,<wbr/> and
7827the device temperature.<wbr/></p></span>
7828                  </li>
7829                  <li>
7830                    <span class="entry_type_enum_name">CALIBRATED</span>
7831                    <span class="entry_type_enum_notes"><p>The lens focus distance is measured in diopters.<wbr/> The lens mechanism is
7832calibrated so that setting the same focus distance is repeatable on
7833multiple occasions with good accuracy,<wbr/> and the focus distance corresponds
7834to the real physical distance to the plane of best focus.<wbr/></p></span>
7835                  </li>
7836                </ul>
7837
7838            </td> <!-- entry_type -->
7839
7840            <td class="entry_description">
7841              <p>The lens focus distance calibration quality.<wbr/></p>
7842            </td>
7843
7844            <td class="entry_units">
7845            </td>
7846
7847            <td class="entry_range">
7848            </td>
7849
7850            <td class="entry_tags">
7851              <ul class="entry_tags">
7852                  <li><a href="#tag_V1">V1</a></li>
7853              </ul>
7854            </td>
7855
7856          </tr>
7857          <tr class="entries_header">
7858            <th class="th_details" colspan="5">Details</th>
7859          </tr>
7860          <tr class="entry_cont">
7861            <td class="entry_details" colspan="5">
7862              <p>The lens focus distance calibration quality determines the reliability of
7863focus related metadata entries,<wbr/> i.<wbr/>e.<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
7864<a href="#dynamic_android.lens.focusRange">android.<wbr/>lens.<wbr/>focus<wbr/>Range</a>,<wbr/> <a href="#static_android.lens.info.hyperfocalDistance">android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance</a>,<wbr/> and
7865<a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>.<wbr/></p>
7866            </td>
7867          </tr>
7868
7869
7870          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7871           <!-- end of entry -->
7872        
7873        
7874        
7875
7876                
7877          <tr class="entry" id="static_android.lens.facing">
7878            <td class="entry_name" rowspan="1">
7879              android.<wbr/>lens.<wbr/>facing
7880            </td>
7881            <td class="entry_type">
7882                <span class="entry_type_name entry_type_name_enum">byte</span>
7883
7884              <span class="entry_type_visibility"> [public]</span>
7885
7886                <ul class="entry_type_enum">
7887                  <li>
7888                    <span class="entry_type_enum_name">FRONT</span>
7889                  </li>
7890                  <li>
7891                    <span class="entry_type_enum_name">BACK</span>
7892                  </li>
7893                </ul>
7894
7895            </td> <!-- entry_type -->
7896
7897            <td class="entry_description">
7898              <p>Direction the camera faces relative to
7899device screen</p>
7900            </td>
7901
7902            <td class="entry_units">
7903            </td>
7904
7905            <td class="entry_range">
7906            </td>
7907
7908            <td class="entry_tags">
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          <tr class="entry" id="static_android.lens.opticalAxisAngle">
7919            <td class="entry_name" rowspan="3">
7920              android.<wbr/>lens.<wbr/>optical<wbr/>Axis<wbr/>Angle
7921            </td>
7922            <td class="entry_type">
7923                <span class="entry_type_name">float</span>
7924                <span class="entry_type_container">x</span>
7925
7926                <span class="entry_type_array">
7927                  2
7928                </span>
7929              <span class="entry_type_visibility"> [system]</span>
7930                <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>
7931
7932
7933            </td> <!-- entry_type -->
7934
7935            <td class="entry_description">
7936              <p>Relative angle of camera optical axis to the
7937perpendicular axis from the display</p>
7938            </td>
7939
7940            <td class="entry_units">
7941            </td>
7942
7943            <td class="entry_range">
7944              <p>[0-90) for first angle,<wbr/> [0-360) for second</p>
7945            </td>
7946
7947            <td class="entry_tags">
7948              <ul class="entry_tags">
7949                  <li><a href="#tag_ADV">ADV</a></li>
7950              </ul>
7951            </td>
7952
7953          </tr>
7954          <tr class="entries_header">
7955            <th class="th_details" colspan="5">Details</th>
7956          </tr>
7957          <tr class="entry_cont">
7958            <td class="entry_details" colspan="5">
7959              <p>Examples:</p>
7960<p>(0,<wbr/>0) means that the camera optical axis
7961is perpendicular to the display surface;</p>
7962<p>(45,<wbr/>0) means that the camera points 45 degrees up when
7963device is held upright;</p>
7964<p>(45,<wbr/>90) means the camera points 45 degrees to the right when
7965the device is held upright.<wbr/></p>
7966<p>Use FACING field to determine perpendicular outgoing
7967direction</p>
7968            </td>
7969          </tr>
7970
7971
7972          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7973           <!-- end of entry -->
7974        
7975                
7976          <tr class="entry" id="static_android.lens.position">
7977            <td class="entry_name" rowspan="1">
7978              android.<wbr/>lens.<wbr/>position
7979            </td>
7980            <td class="entry_type">
7981                <span class="entry_type_name">float</span>
7982                <span class="entry_type_container">x</span>
7983
7984                <span class="entry_type_array">
7985                  3, location in mm, in the sensor coordinate
7986            system
7987                </span>
7988              <span class="entry_type_visibility"> [system]</span>
7989
7990
7991            </td> <!-- entry_type -->
7992
7993            <td class="entry_description">
7994              <p>Coordinates of camera optical axis on
7995device</p>
7996            </td>
7997
7998            <td class="entry_units">
7999            </td>
8000
8001            <td class="entry_range">
8002            </td>
8003
8004            <td class="entry_tags">
8005              <ul class="entry_tags">
8006                  <li><a href="#tag_V1">V1</a></li>
8007              </ul>
8008            </td>
8009
8010          </tr>
8011
8012
8013          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8014           <!-- end of entry -->
8015        
8016        
8017
8018      <!-- end of kind -->
8019      </tbody>
8020      <tr><td colspan="6" class="kind">dynamic</td></tr>
8021
8022      <thead class="entries_header">
8023        <tr>
8024          <th class="th_name">Property Name</th>
8025          <th class="th_type">Type</th>
8026          <th class="th_description">Description</th>
8027          <th class="th_units">Units</th>
8028          <th class="th_range">Range</th>
8029          <th class="th_tags">Tags</th>
8030        </tr>
8031      </thead>
8032
8033      <tbody>
8034
8035        
8036
8037        
8038
8039        
8040
8041        
8042
8043                
8044          <tr class="entry" id="dynamic_android.lens.aperture">
8045            <td class="entry_name" rowspan="3">
8046              android.<wbr/>lens.<wbr/>aperture
8047            </td>
8048            <td class="entry_type">
8049                <span class="entry_type_name">float</span>
8050
8051              <span class="entry_type_visibility"> [public]</span>
8052
8053
8054            </td> <!-- entry_type -->
8055
8056            <td class="entry_description">
8057              <p>The ratio of lens focal length to the effective
8058aperture diameter.<wbr/></p>
8059            </td>
8060
8061            <td class="entry_units">
8062              f-number (f/<wbr/>NNN)
8063            </td>
8064
8065            <td class="entry_range">
8066              <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p>
8067            </td>
8068
8069            <td class="entry_tags">
8070              <ul class="entry_tags">
8071                  <li><a href="#tag_V1">V1</a></li>
8072              </ul>
8073            </td>
8074
8075          </tr>
8076          <tr class="entries_header">
8077            <th class="th_details" colspan="5">Details</th>
8078          </tr>
8079          <tr class="entry_cont">
8080            <td class="entry_details" colspan="5">
8081              <p>This will only be supported on the camera devices that
8082have variable aperture lens.<wbr/> The aperture value can only be
8083one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
8084<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
8085this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
8086<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>
8087to achieve manual exposure control.<wbr/></p>
8088<p>The requested aperture value may take several frames to reach the
8089requested value; the camera device will report the current (intermediate)
8090aperture size in capture result metadata while the aperture is changing.<wbr/>
8091While the aperture is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
8092<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
8093the ON modes,<wbr/> this will be overridden by the camera device
8094auto-exposure algorithm,<wbr/> the overridden values are then provided
8095back to the user in the corresponding result.<wbr/></p>
8096            </td>
8097          </tr>
8098
8099
8100          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8101           <!-- end of entry -->
8102        
8103                
8104          <tr class="entry" id="dynamic_android.lens.filterDensity">
8105            <td class="entry_name" rowspan="3">
8106              android.<wbr/>lens.<wbr/>filter<wbr/>Density
8107            </td>
8108            <td class="entry_type">
8109                <span class="entry_type_name">float</span>
8110
8111              <span class="entry_type_visibility"> [public]</span>
8112
8113
8114            </td> <!-- entry_type -->
8115
8116            <td class="entry_description">
8117              <p>State of lens neutral density filter(s).<wbr/></p>
8118            </td>
8119
8120            <td class="entry_units">
8121              Steps of Exposure Value (EV).<wbr/>
8122            </td>
8123
8124            <td class="entry_range">
8125              <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p>
8126            </td>
8127
8128            <td class="entry_tags">
8129              <ul class="entry_tags">
8130                  <li><a href="#tag_V1">V1</a></li>
8131              </ul>
8132            </td>
8133
8134          </tr>
8135          <tr class="entries_header">
8136            <th class="th_details" colspan="5">Details</th>
8137          </tr>
8138          <tr class="entry_cont">
8139            <td class="entry_details" colspan="5">
8140              <p>This will not be supported on most camera devices.<wbr/> On devices
8141where this is supported,<wbr/> this may only be set to one of the
8142values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
8143<p>Lens filters are typically used to lower the amount of light the
8144sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
8145step is the standard logarithmic representation,<wbr/> which are
8146non-negative,<wbr/> and inversely proportional to the amount of light
8147hitting the sensor.<wbr/>  For example,<wbr/> setting this to 0 would result
8148in no reduction of the incoming light,<wbr/> and setting this to 2 would
8149mean that the filter is set to reduce incoming light by two stops
8150(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
8151<p>It may take several frames before the lens filter density changes
8152to the requested value.<wbr/> While the filter density is still changing,<wbr/>
8153<a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
8154            </td>
8155          </tr>
8156
8157
8158          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8159           <!-- end of entry -->
8160        
8161                
8162          <tr class="entry" id="dynamic_android.lens.focalLength">
8163            <td class="entry_name" rowspan="3">
8164              android.<wbr/>lens.<wbr/>focal<wbr/>Length
8165            </td>
8166            <td class="entry_type">
8167                <span class="entry_type_name">float</span>
8168
8169              <span class="entry_type_visibility"> [public]</span>
8170
8171
8172            </td> <!-- entry_type -->
8173
8174            <td class="entry_description">
8175              <p>The current lens focal length; used for optical zoom.<wbr/></p>
8176            </td>
8177
8178            <td class="entry_units">
8179              focal length in mm
8180            </td>
8181
8182            <td class="entry_range">
8183              <p><a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a></p>
8184            </td>
8185
8186            <td class="entry_tags">
8187              <ul class="entry_tags">
8188                  <li><a href="#tag_BC">BC</a></li>
8189              </ul>
8190            </td>
8191
8192          </tr>
8193          <tr class="entries_header">
8194            <th class="th_details" colspan="5">Details</th>
8195          </tr>
8196          <tr class="entry_cont">
8197            <td class="entry_details" colspan="5">
8198              <p>This setting controls the physical focal length of the camera
8199device's lens.<wbr/> Changing the focal length changes the field of
8200view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
8201<p>Like <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>,<wbr/> this
8202setting won't be applied instantaneously,<wbr/> and it may take several
8203frames before the lens can change to the requested focal length.<wbr/>
8204While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
8205be set to MOVING.<wbr/></p>
8206<p>This is expected not to be supported on most devices.<wbr/></p>
8207            </td>
8208          </tr>
8209
8210
8211          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8212           <!-- end of entry -->
8213        
8214                
8215          <tr class="entry" id="dynamic_android.lens.focusDistance">
8216            <td class="entry_name" rowspan="3">
8217              android.<wbr/>lens.<wbr/>focus<wbr/>Distance
8218            </td>
8219            <td class="entry_type">
8220                <span class="entry_type_name">float</span>
8221
8222              <span class="entry_type_visibility"> [public]</span>
8223
8224
8225            </td> <!-- entry_type -->
8226
8227            <td class="entry_description">
8228              <p>Distance to plane of sharpest focus,<wbr/>
8229measured from frontmost surface of the lens</p>
8230            </td>
8231
8232            <td class="entry_units">
8233              See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
8234            </td>
8235
8236            <td class="entry_range">
8237              <p>&gt;= 0</p>
8238            </td>
8239
8240            <td class="entry_tags">
8241              <ul class="entry_tags">
8242                  <li><a href="#tag_BC">BC</a></li>
8243              </ul>
8244            </td>
8245
8246          </tr>
8247          <tr class="entries_header">
8248            <th class="th_details" colspan="5">Details</th>
8249          </tr>
8250          <tr class="entry_cont">
8251            <td class="entry_details" colspan="5">
8252              <p>Should be zero for fixed-focus cameras</p>
8253            </td>
8254          </tr>
8255
8256
8257          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8258           <!-- end of entry -->
8259        
8260                
8261          <tr class="entry" id="dynamic_android.lens.focusRange">
8262            <td class="entry_name" rowspan="3">
8263              android.<wbr/>lens.<wbr/>focus<wbr/>Range
8264            </td>
8265            <td class="entry_type">
8266                <span class="entry_type_name">float</span>
8267                <span class="entry_type_container">x</span>
8268
8269                <span class="entry_type_array">
8270                  2
8271                </span>
8272              <span class="entry_type_visibility"> [public]</span>
8273                <div class="entry_type_notes">Range of scene distances that are in focus</div>
8274
8275
8276            </td> <!-- entry_type -->
8277
8278            <td class="entry_description">
8279              <p>The range of scene distances that are in
8280sharp focus (depth of field)</p>
8281            </td>
8282
8283            <td class="entry_units">
8284              pair of focus distances in diopters: (near,<wbr/>
8285          far),<wbr/> see android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
8286            </td>
8287
8288            <td class="entry_range">
8289              <p>&gt;=0</p>
8290            </td>
8291
8292            <td class="entry_tags">
8293              <ul class="entry_tags">
8294                  <li><a href="#tag_BC">BC</a></li>
8295              </ul>
8296            </td>
8297
8298          </tr>
8299          <tr class="entries_header">
8300            <th class="th_details" colspan="5">Details</th>
8301          </tr>
8302          <tr class="entry_cont">
8303            <td class="entry_details" colspan="5">
8304              <p>If variable focus not supported,<wbr/> can still report
8305fixed depth of field range</p>
8306            </td>
8307          </tr>
8308
8309
8310          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8311           <!-- end of entry -->
8312        
8313                
8314          <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode">
8315            <td class="entry_name" rowspan="3">
8316              android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
8317            </td>
8318            <td class="entry_type">
8319                <span class="entry_type_name entry_type_name_enum">byte</span>
8320
8321              <span class="entry_type_visibility"> [public]</span>
8322
8323                <ul class="entry_type_enum">
8324                  <li>
8325                    <span class="entry_type_enum_name">OFF</span>
8326                    <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
8327                  </li>
8328                  <li>
8329                    <span class="entry_type_enum_name">ON</span>
8330                    <span class="entry_type_enum_optional">optional</span>
8331                    <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
8332                  </li>
8333                </ul>
8334
8335            </td> <!-- entry_type -->
8336
8337            <td class="entry_description">
8338              <p>Sets whether the camera device uses optical image stabilization (OIS)
8339when capturing images.<wbr/></p>
8340            </td>
8341
8342            <td class="entry_units">
8343            </td>
8344
8345            <td class="entry_range">
8346              <p><a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a></p>
8347            </td>
8348
8349            <td class="entry_tags">
8350              <ul class="entry_tags">
8351                  <li><a href="#tag_V1">V1</a></li>
8352              </ul>
8353            </td>
8354
8355          </tr>
8356          <tr class="entries_header">
8357            <th class="th_details" colspan="5">Details</th>
8358          </tr>
8359          <tr class="entry_cont">
8360            <td class="entry_details" colspan="5">
8361              <p>OIS is used to compensate for motion blur due to small movements of
8362the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
8363use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
8364allows for longer exposure times before camera shake becomes
8365apparent.<wbr/></p>
8366<p>This is not expected to be supported on most devices.<wbr/></p>
8367            </td>
8368          </tr>
8369
8370
8371          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8372           <!-- end of entry -->
8373        
8374                
8375          <tr class="entry" id="dynamic_android.lens.state">
8376            <td class="entry_name" rowspan="3">
8377              android.<wbr/>lens.<wbr/>state
8378            </td>
8379            <td class="entry_type">
8380                <span class="entry_type_name entry_type_name_enum">byte</span>
8381
8382              <span class="entry_type_visibility"> [public]</span>
8383
8384                <ul class="entry_type_enum">
8385                  <li>
8386                    <span class="entry_type_enum_name">STATIONARY</span>
8387                    <span class="entry_type_enum_notes"><p>The lens parameters (<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
8388<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>) are not changing.<wbr/></p></span>
8389                  </li>
8390                  <li>
8391                    <span class="entry_type_enum_name">MOVING</span>
8392                    <span class="entry_type_enum_notes"><p>Any of the lens parameters (<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
8393<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> or <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>) is changing.<wbr/></p></span>
8394                  </li>
8395                </ul>
8396
8397            </td> <!-- entry_type -->
8398
8399            <td class="entry_description">
8400              <p>Current lens status.<wbr/></p>
8401            </td>
8402
8403            <td class="entry_units">
8404            </td>
8405
8406            <td class="entry_range">
8407            </td>
8408
8409            <td class="entry_tags">
8410              <ul class="entry_tags">
8411                  <li><a href="#tag_V1">V1</a></li>
8412              </ul>
8413            </td>
8414
8415          </tr>
8416          <tr class="entries_header">
8417            <th class="th_details" colspan="5">Details</th>
8418          </tr>
8419          <tr class="entry_cont">
8420            <td class="entry_details" colspan="5">
8421              <p>For lens parameters <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
8422<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>,<wbr/> when changes are requested,<wbr/>
8423they may take several frames to reach the requested values.<wbr/> This state indicates
8424the current status of the lens parameters.<wbr/></p>
8425<p>When the state is STATIONARY,<wbr/> the lens parameters are not changing.<wbr/> This could be
8426either because the parameters are all fixed,<wbr/> or because the lens has had enough
8427time to reach the most recently-requested values.<wbr/>
8428If all these lens parameters are not changable for a camera device,<wbr/> as listed below:</p>
8429<ul>
8430<li>Fixed focus (<code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> == 0</code>),<wbr/> which means
8431<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> parameter will always be 0.<wbr/></li>
8432<li>Fixed focal length (<a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a> contains single value),<wbr/>
8433which means the optical zoom is not supported.<wbr/></li>
8434<li>No ND filter (<a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a> contains only 0).<wbr/></li>
8435<li>Fixed aperture (<a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a> contains single value).<wbr/></li>
8436</ul>
8437<p>Then this state will always be STATIONARY.<wbr/></p>
8438<p>When the state is MOVING,<wbr/> it indicates that at least one of the lens parameters
8439is changing.<wbr/></p>
8440            </td>
8441          </tr>
8442
8443
8444          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8445           <!-- end of entry -->
8446        
8447        
8448
8449      <!-- end of kind -->
8450      </tbody>
8451
8452  <!-- end of section -->
8453  <tr><td colspan="6" id="section_noiseReduction" class="section">noiseReduction</td></tr>
8454
8455
8456      <tr><td colspan="6" class="kind">controls</td></tr>
8457
8458      <thead class="entries_header">
8459        <tr>
8460          <th class="th_name">Property Name</th>
8461          <th class="th_type">Type</th>
8462          <th class="th_description">Description</th>
8463          <th class="th_units">Units</th>
8464          <th class="th_range">Range</th>
8465          <th class="th_tags">Tags</th>
8466        </tr>
8467      </thead>
8468
8469      <tbody>
8470
8471        
8472
8473        
8474
8475        
8476
8477        
8478
8479                
8480          <tr class="entry" id="controls_android.noiseReduction.mode">
8481            <td class="entry_name" rowspan="3">
8482              android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
8483            </td>
8484            <td class="entry_type">
8485                <span class="entry_type_name entry_type_name_enum">byte</span>
8486
8487              <span class="entry_type_visibility"> [public]</span>
8488
8489                <ul class="entry_type_enum">
8490                  <li>
8491                    <span class="entry_type_enum_name">OFF</span>
8492                    <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
8493                  </li>
8494                  <li>
8495                    <span class="entry_type_enum_name">FAST</span>
8496                    <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8497output</p></span>
8498                  </li>
8499                  <li>
8500                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
8501                    <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8502quality</p></span>
8503                  </li>
8504                </ul>
8505
8506            </td> <!-- entry_type -->
8507
8508            <td class="entry_description">
8509              <p>Mode of operation for the noise reduction
8510algorithm</p>
8511            </td>
8512
8513            <td class="entry_units">
8514            </td>
8515
8516            <td class="entry_range">
8517            </td>
8518
8519            <td class="entry_tags">
8520              <ul class="entry_tags">
8521                  <li><a href="#tag_V1">V1</a></li>
8522              </ul>
8523            </td>
8524
8525          </tr>
8526          <tr class="entries_header">
8527            <th class="th_details" colspan="5">Details</th>
8528          </tr>
8529          <tr class="entry_cont">
8530            <td class="entry_details" colspan="5">
8531              <p>Noise filtering control.<wbr/> OFF means no noise reduction
8532will be applied by the camera device.<wbr/></p>
8533<p>This must be set to a valid mode in
8534<a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a>.<wbr/></p>
8535<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8536will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8537will use the highest-quality noise filtering algorithms,<wbr/>
8538even if it slows down capture rate.<wbr/> FAST means the camera device should not
8539slow down capture rate when applying noise filtering.<wbr/></p>
8540            </td>
8541          </tr>
8542
8543
8544          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8545           <!-- end of entry -->
8546        
8547                
8548          <tr class="entry" id="controls_android.noiseReduction.strength">
8549            <td class="entry_name" rowspan="1">
8550              android.<wbr/>noise<wbr/>Reduction.<wbr/>strength
8551            </td>
8552            <td class="entry_type">
8553                <span class="entry_type_name">byte</span>
8554
8555              <span class="entry_type_visibility"> [system]</span>
8556
8557
8558            </td> <!-- entry_type -->
8559
8560            <td class="entry_description">
8561              <p>Control the amount of noise reduction
8562applied to the images</p>
8563            </td>
8564
8565            <td class="entry_units">
8566              1-10; 10 is max noise reduction
8567            </td>
8568
8569            <td class="entry_range">
8570              <p>1 - 10</p>
8571            </td>
8572
8573            <td class="entry_tags">
8574            </td>
8575
8576          </tr>
8577
8578
8579          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8580           <!-- end of entry -->
8581        
8582        
8583
8584      <!-- end of kind -->
8585      </tbody>
8586      <tr><td colspan="6" class="kind">static</td></tr>
8587
8588      <thead class="entries_header">
8589        <tr>
8590          <th class="th_name">Property Name</th>
8591          <th class="th_type">Type</th>
8592          <th class="th_description">Description</th>
8593          <th class="th_units">Units</th>
8594          <th class="th_range">Range</th>
8595          <th class="th_tags">Tags</th>
8596        </tr>
8597      </thead>
8598
8599      <tbody>
8600
8601        
8602
8603        
8604
8605        
8606
8607        
8608
8609                
8610          <tr class="entry" id="static_android.noiseReduction.availableNoiseReductionModes">
8611            <td class="entry_name" rowspan="3">
8612              android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes
8613            </td>
8614            <td class="entry_type">
8615                <span class="entry_type_name">byte</span>
8616                <span class="entry_type_container">x</span>
8617
8618                <span class="entry_type_array">
8619                  n
8620                </span>
8621              <span class="entry_type_visibility"> [public]</span>
8622                <div class="entry_type_notes">list of enums</div>
8623
8624
8625            </td> <!-- entry_type -->
8626
8627            <td class="entry_description">
8628              <p>The set of noise reduction modes supported by this camera device.<wbr/></p>
8629            </td>
8630
8631            <td class="entry_units">
8632            </td>
8633
8634            <td class="entry_range">
8635            </td>
8636
8637            <td class="entry_tags">
8638              <ul class="entry_tags">
8639                  <li><a href="#tag_V1">V1</a></li>
8640              </ul>
8641            </td>
8642
8643          </tr>
8644          <tr class="entries_header">
8645            <th class="th_details" colspan="5">Details</th>
8646          </tr>
8647          <tr class="entry_cont">
8648            <td class="entry_details" colspan="5">
8649              <p>This tag lists the valid modes for <a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a>.<wbr/></p>
8650<p>Full-capability camera devices must laways support OFF and FAST.<wbr/></p>
8651            </td>
8652          </tr>
8653
8654
8655          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8656           <!-- end of entry -->
8657        
8658        
8659
8660      <!-- end of kind -->
8661      </tbody>
8662      <tr><td colspan="6" class="kind">dynamic</td></tr>
8663
8664      <thead class="entries_header">
8665        <tr>
8666          <th class="th_name">Property Name</th>
8667          <th class="th_type">Type</th>
8668          <th class="th_description">Description</th>
8669          <th class="th_units">Units</th>
8670          <th class="th_range">Range</th>
8671          <th class="th_tags">Tags</th>
8672        </tr>
8673      </thead>
8674
8675      <tbody>
8676
8677        
8678
8679        
8680
8681        
8682
8683        
8684
8685                
8686          <tr class="entry" id="dynamic_android.noiseReduction.mode">
8687            <td class="entry_name" rowspan="3">
8688              android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
8689            </td>
8690            <td class="entry_type">
8691                <span class="entry_type_name entry_type_name_enum">byte</span>
8692
8693              <span class="entry_type_visibility"> [public]</span>
8694
8695                <ul class="entry_type_enum">
8696                  <li>
8697                    <span class="entry_type_enum_name">OFF</span>
8698                    <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
8699                  </li>
8700                  <li>
8701                    <span class="entry_type_enum_name">FAST</span>
8702                    <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8703output</p></span>
8704                  </li>
8705                  <li>
8706                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
8707                    <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8708quality</p></span>
8709                  </li>
8710                </ul>
8711
8712            </td> <!-- entry_type -->
8713
8714            <td class="entry_description">
8715              <p>Mode of operation for the noise reduction
8716algorithm</p>
8717            </td>
8718
8719            <td class="entry_units">
8720            </td>
8721
8722            <td class="entry_range">
8723            </td>
8724
8725            <td class="entry_tags">
8726              <ul class="entry_tags">
8727                  <li><a href="#tag_V1">V1</a></li>
8728              </ul>
8729            </td>
8730
8731          </tr>
8732          <tr class="entries_header">
8733            <th class="th_details" colspan="5">Details</th>
8734          </tr>
8735          <tr class="entry_cont">
8736            <td class="entry_details" colspan="5">
8737              <p>Noise filtering control.<wbr/> OFF means no noise reduction
8738will be applied by the camera device.<wbr/></p>
8739<p>This must be set to a valid mode in
8740<a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a>.<wbr/></p>
8741<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8742will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8743will use the highest-quality noise filtering algorithms,<wbr/>
8744even if it slows down capture rate.<wbr/> FAST means the camera device should not
8745slow down capture rate when applying noise filtering.<wbr/></p>
8746            </td>
8747          </tr>
8748
8749
8750          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8751           <!-- end of entry -->
8752        
8753        
8754
8755      <!-- end of kind -->
8756      </tbody>
8757
8758  <!-- end of section -->
8759  <tr><td colspan="6" id="section_quirks" class="section">quirks</td></tr>
8760
8761
8762      <tr><td colspan="6" class="kind">static</td></tr>
8763
8764      <thead class="entries_header">
8765        <tr>
8766          <th class="th_name">Property Name</th>
8767          <th class="th_type">Type</th>
8768          <th class="th_description">Description</th>
8769          <th class="th_units">Units</th>
8770          <th class="th_range">Range</th>
8771          <th class="th_tags">Tags</th>
8772        </tr>
8773      </thead>
8774
8775      <tbody>
8776
8777        
8778
8779        
8780
8781        
8782
8783        
8784
8785                
8786          <tr class="entry" id="static_android.quirks.meteringCropRegion">
8787            <td class="entry_name" rowspan="3">
8788              android.<wbr/>quirks.<wbr/>metering<wbr/>Crop<wbr/>Region
8789            </td>
8790            <td class="entry_type">
8791                <span class="entry_type_name">byte</span>
8792
8793              <span class="entry_type_visibility"> [system]</span>
8794
8795
8796            </td> <!-- entry_type -->
8797
8798            <td class="entry_description">
8799              <p>If set to 1,<wbr/> the camera service does not
8800scale 'normalized' coordinates with respect to the crop
8801region.<wbr/> This applies to metering input (a{e,<wbr/>f,<wbr/>wb}Region
8802and output (face rectangles).<wbr/></p>
8803            </td>
8804
8805            <td class="entry_units">
8806            </td>
8807
8808            <td class="entry_range">
8809              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
8810            </td>
8811
8812            <td class="entry_tags">
8813            </td>
8814
8815          </tr>
8816          <tr class="entries_header">
8817            <th class="th_details" colspan="5">Details</th>
8818          </tr>
8819          <tr class="entry_cont">
8820            <td class="entry_details" colspan="5">
8821              <p>Normalized coordinates refer to those in the
8822(-1000,<wbr/>1000) range mentioned in the
8823android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
8824<p>HAL implementations should instead always use and emit
8825sensor array-relative coordinates for all region data.<wbr/> Does
8826not need to be listed in static metadata.<wbr/> Support will be
8827removed in future versions of camera service.<wbr/></p>
8828            </td>
8829          </tr>
8830
8831
8832          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8833           <!-- end of entry -->
8834        
8835                
8836          <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
8837            <td class="entry_name" rowspan="3">
8838              android.<wbr/>quirks.<wbr/>trigger<wbr/>Af<wbr/>With<wbr/>Auto
8839            </td>
8840            <td class="entry_type">
8841                <span class="entry_type_name">byte</span>
8842
8843              <span class="entry_type_visibility"> [system]</span>
8844
8845
8846            </td> <!-- entry_type -->
8847
8848            <td class="entry_description">
8849              <p>If set to 1,<wbr/> then the camera service always
8850switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF
8851trigger.<wbr/></p>
8852            </td>
8853
8854            <td class="entry_units">
8855            </td>
8856
8857            <td class="entry_range">
8858              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
8859            </td>
8860
8861            <td class="entry_tags">
8862            </td>
8863
8864          </tr>
8865          <tr class="entries_header">
8866            <th class="th_details" colspan="5">Details</th>
8867          </tr>
8868          <tr class="entry_cont">
8869            <td class="entry_details" colspan="5">
8870              <p>HAL implementations should implement AF trigger
8871modes for AUTO,<wbr/> MACRO,<wbr/> CONTINUOUS_<wbr/>FOCUS,<wbr/> and
8872CONTINUOUS_<wbr/>PICTURE modes instead of using this flag.<wbr/> Does
8873not need to be listed in static metadata.<wbr/> Support will be
8874removed in future versions of camera service</p>
8875            </td>
8876          </tr>
8877
8878
8879          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8880           <!-- end of entry -->
8881        
8882                
8883          <tr class="entry" id="static_android.quirks.useZslFormat">
8884            <td class="entry_name" rowspan="3">
8885              android.<wbr/>quirks.<wbr/>use<wbr/>Zsl<wbr/>Format
8886            </td>
8887            <td class="entry_type">
8888                <span class="entry_type_name">byte</span>
8889
8890              <span class="entry_type_visibility"> [system]</span>
8891
8892
8893            </td> <!-- entry_type -->
8894
8895            <td class="entry_description">
8896              <p>If set to 1,<wbr/> the camera service uses
8897CAMERA2_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>ZSL instead of
8898HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED for the zero
8899shutter lag stream</p>
8900            </td>
8901
8902            <td class="entry_units">
8903            </td>
8904
8905            <td class="entry_range">
8906              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
8907            </td>
8908
8909            <td class="entry_tags">
8910            </td>
8911
8912          </tr>
8913          <tr class="entries_header">
8914            <th class="th_details" colspan="5">Details</th>
8915          </tr>
8916          <tr class="entry_cont">
8917            <td class="entry_details" colspan="5">
8918              <p>HAL implementations should use gralloc usage flags
8919to determine that a stream will be used for
8920zero-shutter-lag,<wbr/> instead of relying on an explicit
8921format setting.<wbr/> Does not need to be listed in static
8922metadata.<wbr/> Support will be removed in future versions of
8923camera service.<wbr/></p>
8924            </td>
8925          </tr>
8926
8927
8928          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8929           <!-- end of entry -->
8930        
8931                
8932          <tr class="entry" id="static_android.quirks.usePartialResult">
8933            <td class="entry_name" rowspan="5">
8934              android.<wbr/>quirks.<wbr/>use<wbr/>Partial<wbr/>Result
8935            </td>
8936            <td class="entry_type">
8937                <span class="entry_type_name">byte</span>
8938
8939              <span class="entry_type_visibility"> [hidden]</span>
8940
8941
8942            </td> <!-- entry_type -->
8943
8944            <td class="entry_description">
8945              <p>If set to 1,<wbr/> the HAL will always split result
8946metadata for a single capture into multiple buffers,<wbr/>
8947returned using multiple process_<wbr/>capture_<wbr/>result calls.<wbr/></p>
8948            </td>
8949
8950            <td class="entry_units">
8951            </td>
8952
8953            <td class="entry_range">
8954              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
8955            </td>
8956
8957            <td class="entry_tags">
8958            </td>
8959
8960          </tr>
8961          <tr class="entries_header">
8962            <th class="th_details" colspan="5">Details</th>
8963          </tr>
8964          <tr class="entry_cont">
8965            <td class="entry_details" colspan="5">
8966              <p>Does not need to be listed in static
8967metadata.<wbr/> Support for partial results will be reworked in
8968future versions of camera service.<wbr/> This quirk will stop
8969working at that point; DO NOT USE without careful
8970consideration of future support.<wbr/></p>
8971            </td>
8972          </tr>
8973
8974          <tr class="entries_header">
8975            <th class="th_details" colspan="5">HAL Implementation Details</th>
8976          </tr>
8977          <tr class="entry_cont">
8978            <td class="entry_details" colspan="5">
8979              <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
8980for information on how to implement partial results.<wbr/></p>
8981            </td>
8982          </tr>
8983
8984          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8985           <!-- end of entry -->
8986        
8987        
8988
8989      <!-- end of kind -->
8990      </tbody>
8991      <tr><td colspan="6" class="kind">dynamic</td></tr>
8992
8993      <thead class="entries_header">
8994        <tr>
8995          <th class="th_name">Property Name</th>
8996          <th class="th_type">Type</th>
8997          <th class="th_description">Description</th>
8998          <th class="th_units">Units</th>
8999          <th class="th_range">Range</th>
9000          <th class="th_tags">Tags</th>
9001        </tr>
9002      </thead>
9003
9004      <tbody>
9005
9006        
9007
9008        
9009
9010        
9011
9012        
9013
9014                
9015          <tr class="entry" id="dynamic_android.quirks.partialResult">
9016            <td class="entry_name" rowspan="5">
9017              android.<wbr/>quirks.<wbr/>partial<wbr/>Result
9018            </td>
9019            <td class="entry_type">
9020                <span class="entry_type_name entry_type_name_enum">byte</span>
9021
9022              <span class="entry_type_visibility"> [hidden as boolean]</span>
9023
9024                <ul class="entry_type_enum">
9025                  <li>
9026                    <span class="entry_type_enum_name">FINAL</span>
9027                    <span class="entry_type_enum_notes"><p>The last or only metadata result buffer
9028for this capture.<wbr/></p></span>
9029                  </li>
9030                  <li>
9031                    <span class="entry_type_enum_name">PARTIAL</span>
9032                    <span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this
9033capture.<wbr/> More result buffers for this capture will be sent
9034by the camera device,<wbr/> the last of which will be marked
9035FINAL.<wbr/></p></span>
9036                  </li>
9037                </ul>
9038
9039            </td> <!-- entry_type -->
9040
9041            <td class="entry_description">
9042              <p>Whether a result given to the framework is the
9043final one for the capture,<wbr/> or only a partial that contains a
9044subset of the full set of dynamic metadata
9045values.<wbr/></p>
9046            </td>
9047
9048            <td class="entry_units">
9049            </td>
9050
9051            <td class="entry_range">
9052              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> Optional.<wbr/> Default value is FINAL.<wbr/></p>
9053            </td>
9054
9055            <td class="entry_tags">
9056            </td>
9057
9058          </tr>
9059          <tr class="entries_header">
9060            <th class="th_details" colspan="5">Details</th>
9061          </tr>
9062          <tr class="entry_cont">
9063            <td class="entry_details" colspan="5">
9064              <p>The entries in the result metadata buffers for a
9065single capture may not overlap,<wbr/> except for this entry.<wbr/> The
9066FINAL buffers must retain FIFO ordering relative to the
9067requests that generate them,<wbr/> so the FINAL buffer for frame 3 must
9068always be sent to the framework after the FINAL buffer for frame 2,<wbr/> and
9069before the FINAL buffer for frame 4.<wbr/> PARTIAL buffers may be returned
9070in any order relative to other frames,<wbr/> but all PARTIAL buffers for a given
9071capture must arrive before the FINAL buffer for that capture.<wbr/> This entry may
9072only be used by the camera device if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p>
9073            </td>
9074          </tr>
9075
9076          <tr class="entries_header">
9077            <th class="th_details" colspan="5">HAL Implementation Details</th>
9078          </tr>
9079          <tr class="entry_cont">
9080            <td class="entry_details" colspan="5">
9081              <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
9082for information on how to implement partial results.<wbr/></p>
9083            </td>
9084          </tr>
9085
9086          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9087           <!-- end of entry -->
9088        
9089        
9090
9091      <!-- end of kind -->
9092      </tbody>
9093
9094  <!-- end of section -->
9095  <tr><td colspan="6" id="section_request" class="section">request</td></tr>
9096
9097
9098      <tr><td colspan="6" class="kind">controls</td></tr>
9099
9100      <thead class="entries_header">
9101        <tr>
9102          <th class="th_name">Property Name</th>
9103          <th class="th_type">Type</th>
9104          <th class="th_description">Description</th>
9105          <th class="th_units">Units</th>
9106          <th class="th_range">Range</th>
9107          <th class="th_tags">Tags</th>
9108        </tr>
9109      </thead>
9110
9111      <tbody>
9112
9113        
9114
9115        
9116
9117        
9118
9119        
9120
9121                
9122          <tr class="entry" id="controls_android.request.frameCount">
9123            <td class="entry_name" rowspan="1">
9124              android.<wbr/>request.<wbr/>frame<wbr/>Count
9125            </td>
9126            <td class="entry_type">
9127                <span class="entry_type_name">int32</span>
9128
9129              <span class="entry_type_visibility"> [system]</span>
9130
9131
9132            </td> <!-- entry_type -->
9133
9134            <td class="entry_description">
9135              <p>A frame counter set by the framework.<wbr/> Must
9136be maintained unchanged in output frame.<wbr/> This value monotonically
9137increases with every new result (that is,<wbr/> each new result has a unique
9138frameCount value).<wbr/></p>
9139            </td>
9140
9141            <td class="entry_units">
9142              incrementing integer
9143            </td>
9144
9145            <td class="entry_range">
9146              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> Any int.<wbr/></p>
9147            </td>
9148
9149            <td class="entry_tags">
9150            </td>
9151
9152          </tr>
9153
9154
9155          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9156           <!-- end of entry -->
9157        
9158                
9159          <tr class="entry" id="controls_android.request.id">
9160            <td class="entry_name" rowspan="1">
9161              android.<wbr/>request.<wbr/>id
9162            </td>
9163            <td class="entry_type">
9164                <span class="entry_type_name">int32</span>
9165
9166              <span class="entry_type_visibility"> [hidden]</span>
9167
9168
9169            </td> <!-- entry_type -->
9170
9171            <td class="entry_description">
9172              <p>An application-specified ID for the current
9173request.<wbr/> Must be maintained unchanged in output
9174frame</p>
9175            </td>
9176
9177            <td class="entry_units">
9178              arbitrary integer assigned by application
9179            </td>
9180
9181            <td class="entry_range">
9182              <p>Any int</p>
9183            </td>
9184
9185            <td class="entry_tags">
9186              <ul class="entry_tags">
9187                  <li><a href="#tag_V1">V1</a></li>
9188              </ul>
9189            </td>
9190
9191          </tr>
9192
9193
9194          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9195           <!-- end of entry -->
9196        
9197                
9198          <tr class="entry" id="controls_android.request.inputStreams">
9199            <td class="entry_name" rowspan="3">
9200              android.<wbr/>request.<wbr/>input<wbr/>Streams
9201            </td>
9202            <td class="entry_type">
9203                <span class="entry_type_name">int32</span>
9204                <span class="entry_type_container">x</span>
9205
9206                <span class="entry_type_array">
9207                  n
9208                </span>
9209              <span class="entry_type_visibility"> [system]</span>
9210
9211
9212            </td> <!-- entry_type -->
9213
9214            <td class="entry_description">
9215              <p>List which camera reprocess stream is used
9216for the source of reprocessing data.<wbr/></p>
9217            </td>
9218
9219            <td class="entry_units">
9220              List of camera reprocess stream IDs
9221            </td>
9222
9223            <td class="entry_range">
9224              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
9225<p>Typically,<wbr/> only one entry allowed,<wbr/> must be a valid reprocess stream ID.<wbr/></p>
9226            </td>
9227
9228            <td class="entry_tags">
9229              <ul class="entry_tags">
9230                  <li><a href="#tag_HAL2">HAL2</a></li>
9231              </ul>
9232            </td>
9233
9234          </tr>
9235          <tr class="entries_header">
9236            <th class="th_details" colspan="5">Details</th>
9237          </tr>
9238          <tr class="entry_cont">
9239            <td class="entry_details" colspan="5">
9240              <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> ==
9241REPROCESS.<wbr/> Ignored otherwise</p>
9242            </td>
9243          </tr>
9244
9245
9246          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9247           <!-- end of entry -->
9248        
9249                
9250          <tr class="entry" id="controls_android.request.metadataMode">
9251            <td class="entry_name" rowspan="1">
9252              android.<wbr/>request.<wbr/>metadata<wbr/>Mode
9253            </td>
9254            <td class="entry_type">
9255                <span class="entry_type_name entry_type_name_enum">byte</span>
9256
9257              <span class="entry_type_visibility"> [system]</span>
9258
9259                <ul class="entry_type_enum">
9260                  <li>
9261                    <span class="entry_type_enum_name">NONE</span>
9262                    <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
9263for application-bound buffer data.<wbr/> If no
9264application-bound streams exist,<wbr/> no frame should be
9265placed in the output frame queue.<wbr/> If such streams
9266exist,<wbr/> a frame should be placed on the output queue
9267with null metadata but with the necessary output buffer
9268information.<wbr/> Timestamp information should still be
9269included with any output stream buffers</p></span>
9270                  </li>
9271                  <li>
9272                    <span class="entry_type_enum_name">FULL</span>
9273                    <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
9274only be produced if they are separately
9275enabled</p></span>
9276                  </li>
9277                </ul>
9278
9279            </td> <!-- entry_type -->
9280
9281            <td class="entry_description">
9282              <p>How much metadata to produce on
9283output</p>
9284            </td>
9285
9286            <td class="entry_units">
9287            </td>
9288
9289            <td class="entry_range">
9290            </td>
9291
9292            <td class="entry_tags">
9293            </td>
9294
9295          </tr>
9296
9297
9298          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9299           <!-- end of entry -->
9300        
9301                
9302          <tr class="entry" id="controls_android.request.outputStreams">
9303            <td class="entry_name" rowspan="3">
9304              android.<wbr/>request.<wbr/>output<wbr/>Streams
9305            </td>
9306            <td class="entry_type">
9307                <span class="entry_type_name">int32</span>
9308                <span class="entry_type_container">x</span>
9309
9310                <span class="entry_type_array">
9311                  n
9312                </span>
9313              <span class="entry_type_visibility"> [system]</span>
9314
9315
9316            </td> <!-- entry_type -->
9317
9318            <td class="entry_description">
9319              <p>Lists which camera output streams image data
9320from this capture must be sent to</p>
9321            </td>
9322
9323            <td class="entry_units">
9324              List of camera stream IDs
9325            </td>
9326
9327            <td class="entry_range">
9328              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> List must only include streams that have been
9329created</p>
9330            </td>
9331
9332            <td class="entry_tags">
9333              <ul class="entry_tags">
9334                  <li><a href="#tag_HAL2">HAL2</a></li>
9335              </ul>
9336            </td>
9337
9338          </tr>
9339          <tr class="entries_header">
9340            <th class="th_details" colspan="5">Details</th>
9341          </tr>
9342          <tr class="entry_cont">
9343            <td class="entry_details" colspan="5">
9344              <p>If no output streams are listed,<wbr/> then the image
9345data should simply be discarded.<wbr/> The image data must
9346still be captured for metadata and statistics production,<wbr/>
9347and the lens and flash must operate as requested.<wbr/></p>
9348            </td>
9349          </tr>
9350
9351
9352          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9353           <!-- end of entry -->
9354        
9355                
9356          <tr class="entry" id="controls_android.request.type">
9357            <td class="entry_name" rowspan="1">
9358              android.<wbr/>request.<wbr/>type
9359            </td>
9360            <td class="entry_type">
9361                <span class="entry_type_name entry_type_name_enum">byte</span>
9362
9363              <span class="entry_type_visibility"> [system]</span>
9364
9365                <ul class="entry_type_enum">
9366                  <li>
9367                    <span class="entry_type_enum_name">CAPTURE</span>
9368                    <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
9369and process it according to the
9370settings</p></span>
9371                  </li>
9372                  <li>
9373                    <span class="entry_type_enum_name">REPROCESS</span>
9374                    <span class="entry_type_enum_notes"><p>Process previously captured data; the
9375<a href="#controls_android.request.inputStreams">android.<wbr/>request.<wbr/>input<wbr/>Streams</a> parameter determines the
9376source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
9377needed for reprocessing with [RP]</p></span>
9378                  </li>
9379                </ul>
9380
9381            </td> <!-- entry_type -->
9382
9383            <td class="entry_description">
9384              <p>The type of the request; either CAPTURE or
9385REPROCESS.<wbr/> For HAL3,<wbr/> this tag is redundant.<wbr/></p>
9386            </td>
9387
9388            <td class="entry_units">
9389            </td>
9390
9391            <td class="entry_range">
9392              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
9393            </td>
9394
9395            <td class="entry_tags">
9396              <ul class="entry_tags">
9397                  <li><a href="#tag_HAL2">HAL2</a></li>
9398              </ul>
9399            </td>
9400
9401          </tr>
9402
9403
9404          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9405           <!-- end of entry -->
9406        
9407        
9408
9409      <!-- end of kind -->
9410      </tbody>
9411      <tr><td colspan="6" class="kind">static</td></tr>
9412
9413      <thead class="entries_header">
9414        <tr>
9415          <th class="th_name">Property Name</th>
9416          <th class="th_type">Type</th>
9417          <th class="th_description">Description</th>
9418          <th class="th_units">Units</th>
9419          <th class="th_range">Range</th>
9420          <th class="th_tags">Tags</th>
9421        </tr>
9422      </thead>
9423
9424      <tbody>
9425
9426        
9427
9428        
9429
9430        
9431
9432        
9433
9434                
9435          <tr class="entry" id="static_android.request.maxNumOutputStreams">
9436            <td class="entry_name" rowspan="3">
9437              android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams
9438            </td>
9439            <td class="entry_type">
9440                <span class="entry_type_name">int32</span>
9441                <span class="entry_type_container">x</span>
9442
9443                <span class="entry_type_array">
9444                  3
9445                </span>
9446              <span class="entry_type_visibility"> [public]</span>
9447
9448
9449            </td> <!-- entry_type -->
9450
9451            <td class="entry_description">
9452              <p>The maximum numbers of different types of output streams
9453that can be configured and used simultaneously by a camera device.<wbr/></p>
9454            </td>
9455
9456            <td class="entry_units">
9457            </td>
9458
9459            <td class="entry_range">
9460              <p>For JPEG-compressed format streams,<wbr/> &gt;= 1.<wbr/></p>
9461<p>For Raw format streams,<wbr/> &gt;= 0.<wbr/></p>
9462<p>For processed,<wbr/> uncompressed format streams,<wbr/> &gt;= 3
9463for FULL mode devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL</code>);
9464&gt;= 2 for LIMITED mode devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>).<wbr/></p>
9465            </td>
9466
9467            <td class="entry_tags">
9468              <ul class="entry_tags">
9469                  <li><a href="#tag_BC">BC</a></li>
9470              </ul>
9471            </td>
9472
9473          </tr>
9474          <tr class="entries_header">
9475            <th class="th_details" colspan="5">Details</th>
9476          </tr>
9477          <tr class="entry_cont">
9478            <td class="entry_details" colspan="5">
9479              <p>This is a 3 element tuple that contains the max number of output simultaneous
9480streams for raw sensor,<wbr/> processed (and uncompressed),<wbr/> and JPEG formats respectively.<wbr/>
9481For example,<wbr/> if max raw sensor format output stream number is 1,<wbr/> max YUV streams
9482number is 3,<wbr/> and max JPEG stream number is 2,<wbr/> then this tuple should be <code>(1,<wbr/> 3,<wbr/> 2)</code>.<wbr/></p>
9483<p>This lists the upper bound of the number of output streams supported by
9484the camera device.<wbr/> Using more streams simultaneously may require more hardware and
9485CPU resources that will consume more power.<wbr/> The image format for a output stream can
9486be any supported format provided by <a href="#static_android.scaler.availableFormats">android.<wbr/>scaler.<wbr/>available<wbr/>Formats</a>.<wbr/> The formats
9487defined in <a href="#static_android.scaler.availableFormats">android.<wbr/>scaler.<wbr/>available<wbr/>Formats</a> can be catergorized into the 3 stream types
9488as below:</p>
9489<ul>
9490<li>JPEG-compressed format: BLOB.<wbr/></li>
9491<li>Raw formats: RAW_<wbr/>SENSOR and RAW_<wbr/>OPAQUE.<wbr/></li>
9492<li>processed,<wbr/> uncompressed formats: YCb<wbr/>Cr_<wbr/>420_<wbr/>888,<wbr/> YCr<wbr/>Cb_<wbr/>420_<wbr/>SP,<wbr/> YV12.<wbr/></li>
9493</ul>
9494            </td>
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.request.maxNumReprocessStreams">
9503            <td class="entry_name" rowspan="3">
9504              android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Reprocess<wbr/>Streams
9505            </td>
9506            <td class="entry_type">
9507                <span class="entry_type_name">int32</span>
9508                <span class="entry_type_container">x</span>
9509
9510                <span class="entry_type_array">
9511                  1
9512                </span>
9513              <span class="entry_type_visibility"> [system]</span>
9514
9515
9516            </td> <!-- entry_type -->
9517
9518            <td class="entry_description">
9519              <p>How many reprocessing streams of any type
9520can be allocated at the same time.<wbr/></p>
9521            </td>
9522
9523            <td class="entry_units">
9524            </td>
9525
9526            <td class="entry_range">
9527              <p>&gt;= 0</p>
9528            </td>
9529
9530            <td class="entry_tags">
9531              <ul class="entry_tags">
9532                  <li><a href="#tag_HAL2">HAL2</a></li>
9533              </ul>
9534            </td>
9535
9536          </tr>
9537          <tr class="entries_header">
9538            <th class="th_details" colspan="5">Details</th>
9539          </tr>
9540          <tr class="entry_cont">
9541            <td class="entry_details" colspan="5">
9542              <p><strong>Deprecated</strong>.<wbr/> Only used by HAL2.<wbr/>x.<wbr/></p>
9543<p>When set to 0,<wbr/> it means no reprocess stream is supported.<wbr/></p>
9544            </td>
9545          </tr>
9546
9547
9548          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9549           <!-- end of entry -->
9550        
9551                
9552          <tr class="entry" id="static_android.request.maxNumInputStreams">
9553            <td class="entry_name" rowspan="3">
9554              android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams
9555            </td>
9556            <td class="entry_type">
9557                <span class="entry_type_name">int32</span>
9558
9559              <span class="entry_type_visibility"> [public]</span>
9560
9561
9562            </td> <!-- entry_type -->
9563
9564            <td class="entry_description">
9565              <p>The maximum numbers of any type of input streams
9566that can be configured and used simultaneously by a camera device.<wbr/></p>
9567            </td>
9568
9569            <td class="entry_units">
9570            </td>
9571
9572            <td class="entry_range">
9573              <p>&gt;= 0 for LIMITED mode device (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>).<wbr/>
9574&gt;= 1 for FULL mode device (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL</code>).<wbr/></p>
9575            </td>
9576
9577            <td class="entry_tags">
9578            </td>
9579
9580          </tr>
9581          <tr class="entries_header">
9582            <th class="th_details" colspan="5">Details</th>
9583          </tr>
9584          <tr class="entry_cont">
9585            <td class="entry_details" colspan="5">
9586              <p>When set to 0,<wbr/> it means no input stream is supported.<wbr/></p>
9587<p>The image format for a input stream can be any supported
9588format provided by
9589<a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a>.<wbr/> When using an
9590input stream,<wbr/> there must be at least one output stream
9591configured to to receive the reprocessed images.<wbr/></p>
9592<p>For example,<wbr/> for Zero Shutter Lag (ZSL) still capture use case,<wbr/> the input
9593stream image format will be RAW_<wbr/>OPAQUE,<wbr/> the associated output stream image format
9594should be JPEG.<wbr/></p>
9595            </td>
9596          </tr>
9597
9598
9599          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9600           <!-- end of entry -->
9601        
9602                
9603          <tr class="entry" id="static_android.request.pipelineMaxDepth">
9604            <td class="entry_name" rowspan="5">
9605              android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth
9606            </td>
9607            <td class="entry_type">
9608                <span class="entry_type_name">byte</span>
9609
9610              <span class="entry_type_visibility"> [public]</span>
9611
9612
9613            </td> <!-- entry_type -->
9614
9615            <td class="entry_description">
9616              <p>Specifies the number of maximum pipeline stages a frame
9617has to go through from when it's exposed to when it's available
9618to the framework.<wbr/></p>
9619            </td>
9620
9621            <td class="entry_units">
9622            </td>
9623
9624            <td class="entry_range">
9625            </td>
9626
9627            <td class="entry_tags">
9628            </td>
9629
9630          </tr>
9631          <tr class="entries_header">
9632            <th class="th_details" colspan="5">Details</th>
9633          </tr>
9634          <tr class="entry_cont">
9635            <td class="entry_details" colspan="5">
9636              <p>A typical minimum value for this is 2 (one stage to expose,<wbr/>
9637one stage to readout) from the sensor.<wbr/> The ISP then usually adds
9638its own stages to do custom HW processing.<wbr/> Further stages may be
9639added by SW processing.<wbr/></p>
9640<p>Depending on what settings are used (e.<wbr/>g.<wbr/> YUV,<wbr/> JPEG) and what
9641processing is enabled (e.<wbr/>g.<wbr/> face detection),<wbr/> the actual pipeline
9642depth (specified by <a href="#dynamic_android.request.pipelineDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Depth</a>) may be less than
9643the max pipeline depth.<wbr/></p>
9644<p>A pipeline depth of X stages is equivalent to a pipeline latency of
9645X frame intervals.<wbr/></p>
9646<p>This value will be 8 or less.<wbr/></p>
9647            </td>
9648          </tr>
9649
9650          <tr class="entries_header">
9651            <th class="th_details" colspan="5">HAL Implementation Details</th>
9652          </tr>
9653          <tr class="entry_cont">
9654            <td class="entry_details" colspan="5">
9655              <p>This value should be 4 or less.<wbr/></p>
9656            </td>
9657          </tr>
9658
9659          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9660           <!-- end of entry -->
9661        
9662                
9663          <tr class="entry" id="static_android.request.partialResultCount">
9664            <td class="entry_name" rowspan="3">
9665              android.<wbr/>request.<wbr/>partial<wbr/>Result<wbr/>Count
9666            </td>
9667            <td class="entry_type">
9668                <span class="entry_type_name">int32</span>
9669
9670              <span class="entry_type_visibility"> [public]</span>
9671
9672
9673            </td> <!-- entry_type -->
9674
9675            <td class="entry_description">
9676              <p>Optional.<wbr/> Defaults to 1.<wbr/> Defines how many sub-components
9677a result will be composed of.<wbr/></p>
9678            </td>
9679
9680            <td class="entry_units">
9681            </td>
9682
9683            <td class="entry_range">
9684              <p>&gt;= 1</p>
9685            </td>
9686
9687            <td class="entry_tags">
9688            </td>
9689
9690          </tr>
9691          <tr class="entries_header">
9692            <th class="th_details" colspan="5">Details</th>
9693          </tr>
9694          <tr class="entry_cont">
9695            <td class="entry_details" colspan="5">
9696              <p>In order to combat the pipeline latency,<wbr/> partial results
9697may be delivered to the application layer from the camera device as
9698soon as they are available.<wbr/></p>
9699<p>A value of 1 means that partial results are not supported.<wbr/></p>
9700<p>A typical use case for this might be: after requesting an AF lock the
9701new AF state might be available 50% of the way through the pipeline.<wbr/>
9702The camera device could then immediately dispatch this state via a
9703partial result to the framework/<wbr/>application layer,<wbr/> and the rest of
9704the metadata via later partial results.<wbr/></p>
9705            </td>
9706          </tr>
9707
9708
9709          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9710           <!-- end of entry -->
9711        
9712                
9713          <tr class="entry" id="static_android.request.availableCapabilities">
9714            <td class="entry_name" rowspan="5">
9715              android.<wbr/>request.<wbr/>available<wbr/>Capabilities
9716            </td>
9717            <td class="entry_type">
9718                <span class="entry_type_name entry_type_name_enum">byte</span>
9719
9720              <span class="entry_type_visibility"> [public]</span>
9721
9722                <ul class="entry_type_enum">
9723                  <li>
9724                    <span class="entry_type_enum_name">BACKWARD_COMPATIBLE</span>
9725                    <span class="entry_type_enum_notes"><p>The minimal set of capabilities that every camera
9726device (regardless of <a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a>)
9727will support.<wbr/></p>
9728<p>The full set of features supported by this capability makes
9729the camera2 api backwards compatible with the camera1
9730(android.<wbr/>hardware.<wbr/>Camera) API.<wbr/></p>
9731<p>TODO: @hide this.<wbr/> Doesn't really mean anything except
9732act as a catch-all for all the 'base' functionality.<wbr/></p></span>
9733                  </li>
9734                  <li>
9735                    <span class="entry_type_enum_name">OPTIONAL</span>
9736                    <span class="entry_type_enum_notes"><p>This is a catch-all capability to include all other
9737tags or functionality not encapsulated by one of the other
9738capabilities.<wbr/></p>
9739<p>A typical example is all tags marked 'optional'.<wbr/></p>
9740<p>TODO: @hide.<wbr/> We may not need this if we @hide all the optional
9741tags not belonging to a capability.<wbr/></p></span>
9742                  </li>
9743                  <li>
9744                    <span class="entry_type_enum_name">MANUAL_SENSOR</span>
9745                    <span class="entry_type_enum_notes"><p>The camera device can be manually controlled (3A algorithms such
9746as auto exposure,<wbr/> and auto focus can be
9747bypassed),<wbr/> this includes but is not limited to:</p>
9748<ul>
9749<li>Manual exposure control<ul>
9750<li><a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></li>
9751<li><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></li>
9752</ul>
9753</li>
9754<li>Manual sensitivity control<ul>
9755<li><a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a></li>
9756<li><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></li>
9757<li><a href="#static_android.sensor.baseGainFactor">android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor</a></li>
9758</ul>
9759</li>
9760<li>Manual lens control<ul>
9761<li>android.<wbr/>lens.<wbr/>*</li>
9762</ul>
9763</li>
9764<li>Manual flash control<ul>
9765<li>android.<wbr/>flash.<wbr/>*</li>
9766</ul>
9767</li>
9768<li>Manual black level locking<ul>
9769<li><a href="#controls_android.blackLevel.lock">android.<wbr/>black<wbr/>Level.<wbr/>lock</a></li>
9770</ul>
9771</li>
9772</ul>
9773<p>If any of the above 3A algorithms are enabled,<wbr/> then the camera
9774device will accurately report the values applied by 3A in the
9775result.<wbr/></p></span>
9776                  </li>
9777                  <li>
9778                    <span class="entry_type_enum_name">GCAM</span>
9779                    <span class="entry_type_enum_optional">optional</span>
9780                    <span class="entry_type_enum_notes"><p>TODO: This should be @hide</p>
9781<ul>
9782<li>Manual tonemap control<ul>
9783<li><a href="#controls_android.tonemap.curveBlue">android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue</a></li>
9784<li><a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a></li>
9785<li><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></li>
9786<li><a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a></li>
9787<li><a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></li>
9788</ul>
9789</li>
9790<li>Manual white balance control<ul>
9791<li><a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a></li>
9792<li><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a></li>
9793</ul>
9794</li>
9795<li>Lens shading map information<ul>
9796<li><a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a></li>
9797<li><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a></li>
9798</ul>
9799</li>
9800</ul>
9801<p>If auto white balance is enabled,<wbr/> then the camera device
9802will accurately report the values applied by AWB in the result.<wbr/></p>
9803<p>The camera device will also support everything in MANUAL_<wbr/>SENSOR
9804except manual lens control and manual flash control.<wbr/></p></span>
9805                  </li>
9806                  <li>
9807                    <span class="entry_type_enum_name">ZSL</span>
9808                    <span class="entry_type_enum_notes"><p>The camera device supports the Zero Shutter Lag use case.<wbr/></p>
9809<ul>
9810<li>At least one input stream can be used.<wbr/></li>
9811<li>RAW_<wbr/>OPAQUE is supported as an output/<wbr/>input format</li>
9812<li>Using RAW_<wbr/>OPAQUE does not cause a frame rate drop
9813  relative to the sensor's maximum capture rate (at that
9814  resolution).<wbr/></li>
9815<li>RAW_<wbr/>OPAQUE will be reprocessable into both YUV_<wbr/>420_<wbr/>888
9816  and JPEG formats.<wbr/></li>
9817<li>The maximum available resolution for RAW_<wbr/>OPAQUE streams
9818  (both input/<wbr/>output) will match the maximum available
9819  resolution of JPEG streams.<wbr/></li>
9820</ul></span>
9821                  </li>
9822                  <li>
9823                    <span class="entry_type_enum_name">DNG</span>
9824                    <span class="entry_type_enum_optional">optional</span>
9825                    <span class="entry_type_enum_notes"><p>The camera device supports outputting RAW buffers that can be
9826saved offline into a DNG format.<wbr/> It can reprocess DNG
9827files (produced from the same camera device) back into YUV.<wbr/></p>
9828<ul>
9829<li>At least one input stream can be used.<wbr/></li>
9830<li>RAW16 is supported as output/<wbr/>input format.<wbr/></li>
9831<li>RAW16 is reprocessable into both YUV_<wbr/>420_<wbr/>888 and JPEG
9832  formats.<wbr/></li>
9833<li>The maximum available resolution for RAW16 streams (both
9834  input/<wbr/>output) will match the value in
9835  <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/></li>
9836<li>All DNG-related optional metadata entries are provided
9837  by the camera device.<wbr/></li>
9838</ul></span>
9839                  </li>
9840                </ul>
9841
9842            </td> <!-- entry_type -->
9843
9844            <td class="entry_description">
9845              <p>List of capabilities that the camera device
9846advertises as fully supporting.<wbr/></p>
9847            </td>
9848
9849            <td class="entry_units">
9850            </td>
9851
9852            <td class="entry_range">
9853            </td>
9854
9855            <td class="entry_tags">
9856            </td>
9857
9858          </tr>
9859          <tr class="entries_header">
9860            <th class="th_details" colspan="5">Details</th>
9861          </tr>
9862          <tr class="entry_cont">
9863            <td class="entry_details" colspan="5">
9864              <p>A capability is a contract that the camera device makes in order
9865to be able to satisfy one or more use cases.<wbr/></p>
9866<p>Listing a capability guarantees that the whole set of features
9867required to support a common use will all be available.<wbr/></p>
9868<p>Using a subset of the functionality provided by an unsupported
9869capability may be possible on a specific camera device implementation;
9870to do this query each of <a href="#static_android.request.availableRequestKeys">android.<wbr/>request.<wbr/>available<wbr/>Request<wbr/>Keys</a>,<wbr/>
9871<a href="#static_android.request.availableResultKeys">android.<wbr/>request.<wbr/>available<wbr/>Result<wbr/>Keys</a>,<wbr/>
9872<a href="#static_android.request.availableCharacteristicsKeys">android.<wbr/>request.<wbr/>available<wbr/>Characteristics<wbr/>Keys</a>.<wbr/></p>
9873<p>XX: Maybe these should go into <a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a>
9874as a table instead?</p>
9875<p>The following capabilities are guaranteed to be available on
9876<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> <code>==</code> FULL devices:</p>
9877<ul>
9878<li>MANUAL_<wbr/>SENSOR</li>
9879<li>ZSL</li>
9880</ul>
9881<p>Other capabilities may be available on either FULL or LIMITED
9882devices,<wbr/> but the app.<wbr/> should query this field to be sure.<wbr/></p>
9883            </td>
9884          </tr>
9885
9886          <tr class="entries_header">
9887            <th class="th_details" colspan="5">HAL Implementation Details</th>
9888          </tr>
9889          <tr class="entry_cont">
9890            <td class="entry_details" colspan="5">
9891              <p>Additional constraint details per-capability will be available
9892in the Compatibility Test Suite.<wbr/></p>
9893<p>BACKWARD_<wbr/>COMPATIBLE capability requirements are not explicitly listed.<wbr/>
9894Instead refer to "BC" tags and the camera CTS tests in the
9895android.<wbr/>hardware.<wbr/>cts package.<wbr/></p>
9896<p>Listed controls that can be either request or result (e.<wbr/>g.<wbr/>
9897<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>) must be available both in the
9898request and the result in order to be considered to be
9899capability-compliant.<wbr/></p>
9900<p>For example,<wbr/> if the HAL claims to support MANUAL control,<wbr/>
9901then exposure time must be configurable via the request <em>and</em>
9902the actual exposure applied must be available via
9903the result.<wbr/></p>
9904            </td>
9905          </tr>
9906
9907          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9908           <!-- end of entry -->
9909        
9910                
9911          <tr class="entry" id="static_android.request.availableRequestKeys">
9912            <td class="entry_name" rowspan="5">
9913              android.<wbr/>request.<wbr/>available<wbr/>Request<wbr/>Keys
9914            </td>
9915            <td class="entry_type">
9916                <span class="entry_type_name">int32</span>
9917                <span class="entry_type_container">x</span>
9918
9919                <span class="entry_type_array">
9920                  n
9921                </span>
9922              <span class="entry_type_visibility"> [hidden]</span>
9923
9924
9925            </td> <!-- entry_type -->
9926
9927            <td class="entry_description">
9928              <p>A list of all keys that the camera device has available
9929to use with CaptureRequest.<wbr/></p>
9930            </td>
9931
9932            <td class="entry_units">
9933            </td>
9934
9935            <td class="entry_range">
9936            </td>
9937
9938            <td class="entry_tags">
9939            </td>
9940
9941          </tr>
9942          <tr class="entries_header">
9943            <th class="th_details" colspan="5">Details</th>
9944          </tr>
9945          <tr class="entry_cont">
9946            <td class="entry_details" colspan="5">
9947              <p>Attempting to set a key into a CaptureRequest that is not
9948listed here will result in an invalid request and will be rejected
9949by the camera device.<wbr/></p>
9950<p>This field can be used to query the feature set of a camera device
9951at a more granular level than capabilities.<wbr/> This is especially
9952important for optional keys that are not listed under any capability
9953in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
9954<p>TODO: This should be used by #getAvailableCaptureRequestKeys.<wbr/></p>
9955            </td>
9956          </tr>
9957
9958          <tr class="entries_header">
9959            <th class="th_details" colspan="5">HAL Implementation Details</th>
9960          </tr>
9961          <tr class="entry_cont">
9962            <td class="entry_details" colspan="5">
9963              <p>Vendor tags must not be listed here.<wbr/> Use the vendor tag metadata
9964extensions C api instead (refer to camera3.<wbr/>h for more details).<wbr/></p>
9965<p>Setting/<wbr/>getting vendor tags will be checked against the metadata
9966vendor extensions API and not against this field.<wbr/></p>
9967<p>The HAL must not consume any request tags that are not listed either
9968here or in the vendor tag list.<wbr/></p>
9969<p>The public camera2 API will always make the vendor tags visible
9970via CameraCharacteristics#getAvailableCaptureRequestKeys.<wbr/></p>
9971            </td>
9972          </tr>
9973
9974          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9975           <!-- end of entry -->
9976        
9977                
9978          <tr class="entry" id="static_android.request.availableResultKeys">
9979            <td class="entry_name" rowspan="5">
9980              android.<wbr/>request.<wbr/>available<wbr/>Result<wbr/>Keys
9981            </td>
9982            <td class="entry_type">
9983                <span class="entry_type_name">int32</span>
9984                <span class="entry_type_container">x</span>
9985
9986                <span class="entry_type_array">
9987                  n
9988                </span>
9989              <span class="entry_type_visibility"> [hidden]</span>
9990
9991
9992            </td> <!-- entry_type -->
9993
9994            <td class="entry_description">
9995              <p>A list of all keys that the camera device has available
9996to use with CaptureResult.<wbr/></p>
9997            </td>
9998
9999            <td class="entry_units">
10000            </td>
10001
10002            <td class="entry_range">
10003            </td>
10004
10005            <td class="entry_tags">
10006            </td>
10007
10008          </tr>
10009          <tr class="entries_header">
10010            <th class="th_details" colspan="5">Details</th>
10011          </tr>
10012          <tr class="entry_cont">
10013            <td class="entry_details" colspan="5">
10014              <p>Attempting to get a key from a CaptureResult that is not
10015listed here will always return a <code>null</code> value.<wbr/> Getting a key from
10016a CaptureResult that is listed here must never return a <code>null</code>
10017value.<wbr/></p>
10018<p>The following keys may return <code>null</code> unless they are enabled:</p>
10019<ul>
10020<li><a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> (non-null iff <a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a> == ON)</li>
10021</ul>
10022<p>(Those sometimes-null keys should nevertheless be listed here
10023if they are available.<wbr/>)</p>
10024<p>This field can be used to query the feature set of a camera device
10025at a more granular level than capabilities.<wbr/> This is especially
10026important for optional keys that are not listed under any capability
10027in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
10028<p>TODO: This should be used by #getAvailableCaptureResultKeys.<wbr/></p>
10029            </td>
10030          </tr>
10031
10032          <tr class="entries_header">
10033            <th class="th_details" colspan="5">HAL Implementation Details</th>
10034          </tr>
10035          <tr class="entry_cont">
10036            <td class="entry_details" colspan="5">
10037              <p>Tags listed here must always have an entry in the result metadata,<wbr/>
10038even if that size is 0 elements.<wbr/> Only array-type tags (e.<wbr/>g.<wbr/> lists,<wbr/>
10039matrices,<wbr/> strings) are allowed to have 0 elements.<wbr/></p>
10040<p>Vendor tags must not be listed here.<wbr/> Use the vendor tag metadata
10041extensions C api instead (refer to camera3.<wbr/>h for more details).<wbr/></p>
10042<p>Setting/<wbr/>getting vendor tags will be checked against the metadata
10043vendor extensions API and not against this field.<wbr/></p>
10044<p>The HAL must not produce any result tags that are not listed either
10045here or in the vendor tag list.<wbr/></p>
10046<p>The public camera2 API will always make the vendor tags visible
10047via CameraCharacteristics#getAvailableCaptureResultKeys.<wbr/></p>
10048            </td>
10049          </tr>
10050
10051          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10052           <!-- end of entry -->
10053        
10054                
10055          <tr class="entry" id="static_android.request.availableCharacteristicsKeys">
10056            <td class="entry_name" rowspan="5">
10057              android.<wbr/>request.<wbr/>available<wbr/>Characteristics<wbr/>Keys
10058            </td>
10059            <td class="entry_type">
10060                <span class="entry_type_name">int32</span>
10061                <span class="entry_type_container">x</span>
10062
10063                <span class="entry_type_array">
10064                  n
10065                </span>
10066              <span class="entry_type_visibility"> [hidden]</span>
10067
10068
10069            </td> <!-- entry_type -->
10070
10071            <td class="entry_description">
10072              <p>A list of all keys that the camera device has available
10073to use with CameraCharacteristics.<wbr/></p>
10074            </td>
10075
10076            <td class="entry_units">
10077            </td>
10078
10079            <td class="entry_range">
10080            </td>
10081
10082            <td class="entry_tags">
10083            </td>
10084
10085          </tr>
10086          <tr class="entries_header">
10087            <th class="th_details" colspan="5">Details</th>
10088          </tr>
10089          <tr class="entry_cont">
10090            <td class="entry_details" colspan="5">
10091              <p>This entry follows the same rules as
10092<a href="#static_android.request.availableResultKeys">android.<wbr/>request.<wbr/>available<wbr/>Result<wbr/>Keys</a> (except that it applies for
10093CameraCharacteristics instead of CaptureResult).<wbr/> See above for more
10094details.<wbr/></p>
10095<p>TODO: This should be used by CameraCharacteristics#getKeys.<wbr/></p>
10096            </td>
10097          </tr>
10098
10099          <tr class="entries_header">
10100            <th class="th_details" colspan="5">HAL Implementation Details</th>
10101          </tr>
10102          <tr class="entry_cont">
10103            <td class="entry_details" colspan="5">
10104              <p>Tags listed here must always have an entry in the static info metadata,<wbr/>
10105even if that size is 0 elements.<wbr/> Only array-type tags (e.<wbr/>g.<wbr/> lists,<wbr/>
10106matrices,<wbr/> strings) are allowed to have 0 elements.<wbr/></p>
10107<p>Vendor tags must not be listed here.<wbr/> Use the vendor tag metadata
10108extensions C api instead (refer to camera3.<wbr/>h for more details).<wbr/></p>
10109<p>Setting/<wbr/>getting vendor tags will be checked against the metadata
10110vendor extensions API and not against this field.<wbr/></p>
10111<p>The HAL must not have any tags in its static info that are not listed
10112either here or in the vendor tag list.<wbr/></p>
10113<p>The public camera2 API will always make the vendor tags visible
10114via CameraCharacteristics#getKeys.<wbr/></p>
10115            </td>
10116          </tr>
10117
10118          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10119           <!-- end of entry -->
10120        
10121        
10122
10123      <!-- end of kind -->
10124      </tbody>
10125      <tr><td colspan="6" class="kind">dynamic</td></tr>
10126
10127      <thead class="entries_header">
10128        <tr>
10129          <th class="th_name">Property Name</th>
10130          <th class="th_type">Type</th>
10131          <th class="th_description">Description</th>
10132          <th class="th_units">Units</th>
10133          <th class="th_range">Range</th>
10134          <th class="th_tags">Tags</th>
10135        </tr>
10136      </thead>
10137
10138      <tbody>
10139
10140        
10141
10142        
10143
10144        
10145
10146        
10147
10148                
10149          <tr class="entry" id="dynamic_android.request.frameCount">
10150            <td class="entry_name" rowspan="3">
10151              android.<wbr/>request.<wbr/>frame<wbr/>Count
10152            </td>
10153            <td class="entry_type">
10154                <span class="entry_type_name">int32</span>
10155
10156              <span class="entry_type_visibility"> [public]</span>
10157
10158
10159            </td> <!-- entry_type -->
10160
10161            <td class="entry_description">
10162              <p>A frame counter set by the framework.<wbr/> This value monotonically
10163increases with every new result (that is,<wbr/> each new result has a unique
10164frameCount value).<wbr/></p>
10165            </td>
10166
10167            <td class="entry_units">
10168              count of frames
10169            </td>
10170
10171            <td class="entry_range">
10172              <p>&gt; 0</p>
10173            </td>
10174
10175            <td class="entry_tags">
10176            </td>
10177
10178          </tr>
10179          <tr class="entries_header">
10180            <th class="th_details" colspan="5">Details</th>
10181          </tr>
10182          <tr class="entry_cont">
10183            <td class="entry_details" colspan="5">
10184              <p>Reset on release()</p>
10185            </td>
10186          </tr>
10187
10188
10189          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10190           <!-- end of entry -->
10191        
10192                
10193          <tr class="entry" id="dynamic_android.request.id">
10194            <td class="entry_name" rowspan="1">
10195              android.<wbr/>request.<wbr/>id
10196            </td>
10197            <td class="entry_type">
10198                <span class="entry_type_name">int32</span>
10199
10200              <span class="entry_type_visibility"> [hidden]</span>
10201
10202
10203            </td> <!-- entry_type -->
10204
10205            <td class="entry_description">
10206              <p>An application-specified ID for the current
10207request.<wbr/> Must be maintained unchanged in output
10208frame</p>
10209            </td>
10210
10211            <td class="entry_units">
10212              arbitrary integer assigned by application
10213            </td>
10214
10215            <td class="entry_range">
10216              <p>Any int</p>
10217            </td>
10218
10219            <td class="entry_tags">
10220              <ul class="entry_tags">
10221                  <li><a href="#tag_V1">V1</a></li>
10222              </ul>
10223            </td>
10224
10225          </tr>
10226
10227
10228          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10229           <!-- end of entry -->
10230        
10231                
10232          <tr class="entry" id="dynamic_android.request.metadataMode">
10233            <td class="entry_name" rowspan="1">
10234              android.<wbr/>request.<wbr/>metadata<wbr/>Mode
10235            </td>
10236            <td class="entry_type">
10237                <span class="entry_type_name entry_type_name_enum">byte</span>
10238
10239              <span class="entry_type_visibility"> [system]</span>
10240
10241                <ul class="entry_type_enum">
10242                  <li>
10243                    <span class="entry_type_enum_name">NONE</span>
10244                    <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
10245for application-bound buffer data.<wbr/> If no
10246application-bound streams exist,<wbr/> no frame should be
10247placed in the output frame queue.<wbr/> If such streams
10248exist,<wbr/> a frame should be placed on the output queue
10249with null metadata but with the necessary output buffer
10250information.<wbr/> Timestamp information should still be
10251included with any output stream buffers</p></span>
10252                  </li>
10253                  <li>
10254                    <span class="entry_type_enum_name">FULL</span>
10255                    <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
10256only be produced if they are separately
10257enabled</p></span>
10258                  </li>
10259                </ul>
10260
10261            </td> <!-- entry_type -->
10262
10263            <td class="entry_description">
10264              <p>How much metadata to produce on
10265output</p>
10266            </td>
10267
10268            <td class="entry_units">
10269            </td>
10270
10271            <td class="entry_range">
10272            </td>
10273
10274            <td class="entry_tags">
10275            </td>
10276
10277          </tr>
10278
10279
10280          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10281           <!-- end of entry -->
10282        
10283                
10284          <tr class="entry" id="dynamic_android.request.outputStreams">
10285            <td class="entry_name" rowspan="3">
10286              android.<wbr/>request.<wbr/>output<wbr/>Streams
10287            </td>
10288            <td class="entry_type">
10289                <span class="entry_type_name">int32</span>
10290                <span class="entry_type_container">x</span>
10291
10292                <span class="entry_type_array">
10293                  n
10294                </span>
10295              <span class="entry_type_visibility"> [system]</span>
10296
10297
10298            </td> <!-- entry_type -->
10299
10300            <td class="entry_description">
10301              <p>Lists which camera output streams image data
10302from this capture must be sent to</p>
10303            </td>
10304
10305            <td class="entry_units">
10306              List of camera stream IDs
10307            </td>
10308
10309            <td class="entry_range">
10310              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> List must only include streams that have been
10311created</p>
10312            </td>
10313
10314            <td class="entry_tags">
10315              <ul class="entry_tags">
10316                  <li><a href="#tag_HAL2">HAL2</a></li>
10317              </ul>
10318            </td>
10319
10320          </tr>
10321          <tr class="entries_header">
10322            <th class="th_details" colspan="5">Details</th>
10323          </tr>
10324          <tr class="entry_cont">
10325            <td class="entry_details" colspan="5">
10326              <p>If no output streams are listed,<wbr/> then the image
10327data should simply be discarded.<wbr/> The image data must
10328still be captured for metadata and statistics production,<wbr/>
10329and the lens and flash must operate as requested.<wbr/></p>
10330            </td>
10331          </tr>
10332
10333
10334          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10335           <!-- end of entry -->
10336        
10337                
10338          <tr class="entry" id="dynamic_android.request.pipelineDepth">
10339            <td class="entry_name" rowspan="5">
10340              android.<wbr/>request.<wbr/>pipeline<wbr/>Depth
10341            </td>
10342            <td class="entry_type">
10343                <span class="entry_type_name">byte</span>
10344
10345              <span class="entry_type_visibility"> [public]</span>
10346
10347
10348            </td> <!-- entry_type -->
10349
10350            <td class="entry_description">
10351              <p>Specifies the number of pipeline stages the frame went
10352through from when it was exposed to when the final completed result
10353was available to the framework.<wbr/></p>
10354            </td>
10355
10356            <td class="entry_units">
10357            </td>
10358
10359            <td class="entry_range">
10360              <p>&lt;= <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a></p>
10361            </td>
10362
10363            <td class="entry_tags">
10364            </td>
10365
10366          </tr>
10367          <tr class="entries_header">
10368            <th class="th_details" colspan="5">Details</th>
10369          </tr>
10370          <tr class="entry_cont">
10371            <td class="entry_details" colspan="5">
10372              <p>Depending on what settings are used in the request,<wbr/> and
10373what streams are configured,<wbr/> the data may undergo less processing,<wbr/>
10374and some pipeline stages skipped.<wbr/></p>
10375<p>See <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> for more details.<wbr/></p>
10376            </td>
10377          </tr>
10378
10379          <tr class="entries_header">
10380            <th class="th_details" colspan="5">HAL Implementation Details</th>
10381          </tr>
10382          <tr class="entry_cont">
10383            <td class="entry_details" colspan="5">
10384              <p>This value must always represent the accurate count of how many
10385pipeline stages were actually used.<wbr/></p>
10386            </td>
10387          </tr>
10388
10389          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10390           <!-- end of entry -->
10391        
10392        
10393
10394      <!-- end of kind -->
10395      </tbody>
10396
10397  <!-- end of section -->
10398  <tr><td colspan="6" id="section_scaler" class="section">scaler</td></tr>
10399
10400
10401      <tr><td colspan="6" class="kind">controls</td></tr>
10402
10403      <thead class="entries_header">
10404        <tr>
10405          <th class="th_name">Property Name</th>
10406          <th class="th_type">Type</th>
10407          <th class="th_description">Description</th>
10408          <th class="th_units">Units</th>
10409          <th class="th_range">Range</th>
10410          <th class="th_tags">Tags</th>
10411        </tr>
10412      </thead>
10413
10414      <tbody>
10415
10416        
10417
10418        
10419
10420        
10421
10422        
10423
10424                
10425          <tr class="entry" id="controls_android.scaler.cropRegion">
10426            <td class="entry_name" rowspan="3">
10427              android.<wbr/>scaler.<wbr/>crop<wbr/>Region
10428            </td>
10429            <td class="entry_type">
10430                <span class="entry_type_name">int32</span>
10431                <span class="entry_type_container">x</span>
10432
10433                <span class="entry_type_array">
10434                  4
10435                </span>
10436              <span class="entry_type_visibility"> [public as rectangle]</span>
10437
10438
10439            </td> <!-- entry_type -->
10440
10441            <td class="entry_description">
10442              <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
10443<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
10444(width,<wbr/> height).<wbr/> The region of the sensor that is used for
10445output.<wbr/> Each stream must use this rectangle to produce its
10446output,<wbr/> cropping to a smaller region if necessary to
10447maintain the stream's aspect ratio.<wbr/></p>
10448<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
10449            </td>
10450
10451            <td class="entry_units">
10452              (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
10453          in pixels; (0,<wbr/>0) is top-left corner of
10454          android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
10455            </td>
10456
10457            <td class="entry_range">
10458            </td>
10459
10460            <td class="entry_tags">
10461              <ul class="entry_tags">
10462                  <li><a href="#tag_BC">BC</a></li>
10463              </ul>
10464            </td>
10465
10466          </tr>
10467          <tr class="entries_header">
10468            <th class="th_details" colspan="5">Details</th>
10469          </tr>
10470          <tr class="entry_cont">
10471            <td class="entry_details" colspan="5">
10472              <p>Any additional per-stream cropping must be done to
10473maximize the final pixel area of the stream.<wbr/></p>
10474<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
10475ratio,<wbr/> then 4:3 streams should use the exact crop
10476region.<wbr/> 16:9 streams should further crop vertically
10477(letterbox).<wbr/></p>
10478<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
10479outputs should crop horizontally (pillarbox),<wbr/> and 16:9
10480streams should match exactly.<wbr/> These additional crops must
10481be centered within the crop region.<wbr/></p>
10482<p>The output streams must maintain square pixels at all
10483times,<wbr/> no matter what the relative aspect ratios of the
10484crop region and the stream are.<wbr/>  Negative values for
10485corner are allowed for raw output if full pixel array is
10486larger than active pixel array.<wbr/> Width and height may be
10487rounded to nearest larger supportable width,<wbr/> especially
10488for raw output,<wbr/> where only a few fixed scales may be
10489possible.<wbr/> The width and height of the crop region cannot
10490be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
10491<a href="#static_android.scaler.availableMaxDigitalZoom">android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom</a> ) and floor(
10492activeArraySize.<wbr/>height /<wbr/>
10493<a href="#static_android.scaler.availableMaxDigitalZoom">android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom</a>),<wbr/> respectively.<wbr/></p>
10494            </td>
10495          </tr>
10496
10497
10498          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10499           <!-- end of entry -->
10500        
10501        
10502
10503      <!-- end of kind -->
10504      </tbody>
10505      <tr><td colspan="6" class="kind">static</td></tr>
10506
10507      <thead class="entries_header">
10508        <tr>
10509          <th class="th_name">Property Name</th>
10510          <th class="th_type">Type</th>
10511          <th class="th_description">Description</th>
10512          <th class="th_units">Units</th>
10513          <th class="th_range">Range</th>
10514          <th class="th_tags">Tags</th>
10515        </tr>
10516      </thead>
10517
10518      <tbody>
10519
10520        
10521
10522        
10523
10524        
10525
10526        
10527
10528                
10529          <tr class="entry" id="static_android.scaler.availableFormats">
10530            <td class="entry_name" rowspan="5">
10531              android.<wbr/>scaler.<wbr/>available<wbr/>Formats
10532            </td>
10533            <td class="entry_type">
10534                <span class="entry_type_name entry_type_name_enum">int32</span>
10535                <span class="entry_type_container">x</span>
10536
10537                <span class="entry_type_array">
10538                  n
10539                </span>
10540              <span class="entry_type_visibility"> [public as imageFormat]</span>
10541
10542                <ul class="entry_type_enum">
10543                  <li>
10544                    <span class="entry_type_enum_name">RAW16</span>
10545                    <span class="entry_type_enum_optional">optional</span>
10546                    <span class="entry_type_enum_value">0x20</span>
10547                    <span class="entry_type_enum_notes"><p>RAW16 is a standard,<wbr/> cross-platform format for raw image
10548buffers with 16-bit pixels.<wbr/> Buffers of this format are typically
10549expected to have a Bayer Color Filter Array (CFA) layout,<wbr/> which
10550is given in <a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a>.<wbr/> Sensors
10551with CFAs that are not representable by a format in
10552<a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a> should not use this
10553format.<wbr/></p>
10554<p>Buffers of this format will also follow the constraints given for
10555RAW_<wbr/>OPAQUE buffers,<wbr/> but with relaxed performance constraints.<wbr/></p>
10556<p>See <a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a> for
10557the full set of performance guarantees.<wbr/></p></span>
10558                  </li>
10559                  <li>
10560                    <span class="entry_type_enum_name">RAW_OPAQUE</span>
10561                    <span class="entry_type_enum_optional">optional</span>
10562                    <span class="entry_type_enum_value">0x24</span>
10563                    <span class="entry_type_enum_notes"><p>RAW_<wbr/>OPAQUE is a format for raw image buffers coming from an
10564image sensor.<wbr/> The actual structure of buffers of this format is
10565platform-specific,<wbr/> but must follow several constraints:</p>
10566<ol>
10567<li>No image post-processing operations may have been applied to
10568buffers of this type.<wbr/> These buffers contain raw image data coming
10569directly from the image sensor.<wbr/></li>
10570<li>If a buffer of this format is passed to the camera device for
10571reprocessing,<wbr/> the resulting images will be identical to the images
10572produced if the buffer had come directly from the sensor and was
10573processed with the same settings.<wbr/></li>
10574</ol>
10575<p>The intended use for this format is to allow access to the native
10576raw format buffers coming directly from the camera sensor without
10577any additional conversions or decrease in framerate.<wbr/></p>
10578<p>See <a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a> for the full set of
10579performance guarantees.<wbr/></p></span>
10580                  </li>
10581                  <li>
10582                    <span class="entry_type_enum_name">YV12</span>
10583                    <span class="entry_type_enum_optional">optional</span>
10584                    <span class="entry_type_enum_value">0x32315659</span>
10585                    <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
10586                  </li>
10587                  <li>
10588                    <span class="entry_type_enum_name">YCrCb_420_SP</span>
10589                    <span class="entry_type_enum_optional">optional</span>
10590                    <span class="entry_type_enum_value">0x11</span>
10591                    <span class="entry_type_enum_notes"><p>NV21</p></span>
10592                  </li>
10593                  <li>
10594                    <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span>
10595                    <span class="entry_type_enum_value">0x22</span>
10596                    <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
10597                  </li>
10598                  <li>
10599                    <span class="entry_type_enum_name">YCbCr_420_888</span>
10600                    <span class="entry_type_enum_value">0x23</span>
10601                    <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
10602                  </li>
10603                  <li>
10604                    <span class="entry_type_enum_name">BLOB</span>
10605                    <span class="entry_type_enum_value">0x21</span>
10606                    <span class="entry_type_enum_notes"><p>JPEG format</p></span>
10607                  </li>
10608                </ul>
10609
10610            </td> <!-- entry_type -->
10611
10612            <td class="entry_description">
10613              <p>The list of image formats that are supported by this
10614camera device for output streams.<wbr/></p>
10615            </td>
10616
10617            <td class="entry_units">
10618            </td>
10619
10620            <td class="entry_range">
10621            </td>
10622
10623            <td class="entry_tags">
10624              <ul class="entry_tags">
10625                  <li><a href="#tag_BC">BC</a></li>
10626              </ul>
10627            </td>
10628
10629          </tr>
10630          <tr class="entries_header">
10631            <th class="th_details" colspan="5">Details</th>
10632          </tr>
10633          <tr class="entry_cont">
10634            <td class="entry_details" colspan="5">
10635              <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p>
10636<p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p>
10637            </td>
10638          </tr>
10639
10640          <tr class="entries_header">
10641            <th class="th_details" colspan="5">HAL Implementation Details</th>
10642          </tr>
10643          <tr class="entry_cont">
10644            <td class="entry_details" colspan="5">
10645              <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
10646system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
10647<p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform
10648gralloc module will select a format based on the usage flags provided
10649by the camera HAL device and the other endpoint of the stream.<wbr/> It is
10650usually used by preview and recording streams,<wbr/> where the application doesn't
10651need access the image data.<wbr/></p>
10652<p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream
10653needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p>
10654<p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p>
10655<p>A RAW_<wbr/>OPAQUE buffer should contain only pixel data.<wbr/> It is strongly
10656recommended that any information used by the camera device when
10657processing images is fully expressed by the result metadata
10658for that image buffer.<wbr/></p>
10659            </td>
10660          </tr>
10661
10662          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10663           <!-- end of entry -->
10664        
10665                
10666          <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
10667            <td class="entry_name" rowspan="3">
10668              android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
10669            </td>
10670            <td class="entry_type">
10671                <span class="entry_type_name">int64</span>
10672                <span class="entry_type_container">x</span>
10673
10674                <span class="entry_type_array">
10675                  n
10676                </span>
10677              <span class="entry_type_visibility"> [public]</span>
10678
10679
10680            </td> <!-- entry_type -->
10681
10682            <td class="entry_description">
10683              <p>The minimum frame duration that is supported
10684for each resolution in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a>.<wbr/></p>
10685            </td>
10686
10687            <td class="entry_units">
10688              ns
10689            </td>
10690
10691            <td class="entry_range">
10692              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> TODO: Remove property.<wbr/></p>
10693            </td>
10694
10695            <td class="entry_tags">
10696              <ul class="entry_tags">
10697                  <li><a href="#tag_BC">BC</a></li>
10698              </ul>
10699            </td>
10700
10701          </tr>
10702          <tr class="entries_header">
10703            <th class="th_details" colspan="5">Details</th>
10704          </tr>
10705          <tr class="entry_cont">
10706            <td class="entry_details" colspan="5">
10707              <p>This corresponds to the minimum steady-state frame duration when only
10708that JPEG stream is active and captured in a burst,<wbr/> with all
10709processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST.<wbr/></p>
10710<p>When multiple streams are configured,<wbr/> the minimum
10711frame duration will be &gt;= max(individual stream min
10712durations)</p>
10713            </td>
10714          </tr>
10715
10716
10717          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10718           <!-- end of entry -->
10719        
10720                
10721          <tr class="entry" id="static_android.scaler.availableJpegSizes">
10722            <td class="entry_name" rowspan="5">
10723              android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
10724            </td>
10725            <td class="entry_type">
10726                <span class="entry_type_name">int32</span>
10727                <span class="entry_type_container">x</span>
10728
10729                <span class="entry_type_array">
10730                  n x 2
10731                </span>
10732              <span class="entry_type_visibility"> [public as size]</span>
10733
10734
10735            </td> <!-- entry_type -->
10736
10737            <td class="entry_description">
10738              <p>The JPEG resolutions that are supported by this camera device.<wbr/></p>
10739            </td>
10740
10741            <td class="entry_units">
10742            </td>
10743
10744            <td class="entry_range">
10745              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> TODO: Remove property.<wbr/></p>
10746            </td>
10747
10748            <td class="entry_tags">
10749              <ul class="entry_tags">
10750                  <li><a href="#tag_BC">BC</a></li>
10751              </ul>
10752            </td>
10753
10754          </tr>
10755          <tr class="entries_header">
10756            <th class="th_details" colspan="5">Details</th>
10757          </tr>
10758          <tr class="entry_cont">
10759            <td class="entry_details" colspan="5">
10760              <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support
10761sensor 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>
10762            </td>
10763          </tr>
10764
10765          <tr class="entries_header">
10766            <th class="th_details" colspan="5">HAL Implementation Details</th>
10767          </tr>
10768          <tr class="entry_cont">
10769            <td class="entry_details" colspan="5">
10770              <p>The HAL must include sensor maximum resolution
10771(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/>
10772and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p>
10773            </td>
10774          </tr>
10775
10776          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10777           <!-- end of entry -->
10778        
10779                
10780          <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
10781            <td class="entry_name" rowspan="1">
10782              android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom
10783            </td>
10784            <td class="entry_type">
10785                <span class="entry_type_name">float</span>
10786
10787              <span class="entry_type_visibility"> [public]</span>
10788
10789
10790            </td> <!-- entry_type -->
10791
10792            <td class="entry_description">
10793              <p>The maximum ratio between active area width
10794and crop region width,<wbr/> or between active area height and
10795crop region height,<wbr/> if the crop region height is larger
10796than width</p>
10797            </td>
10798
10799            <td class="entry_units">
10800            </td>
10801
10802            <td class="entry_range">
10803              <p>&gt;=1</p>
10804            </td>
10805
10806            <td class="entry_tags">
10807              <ul class="entry_tags">
10808                  <li><a href="#tag_BC">BC</a></li>
10809              </ul>
10810            </td>
10811
10812          </tr>
10813
10814
10815          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10816           <!-- end of entry -->
10817        
10818                
10819          <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
10820            <td class="entry_name" rowspan="3">
10821              android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
10822            </td>
10823            <td class="entry_type">
10824                <span class="entry_type_name">int64</span>
10825                <span class="entry_type_container">x</span>
10826
10827                <span class="entry_type_array">
10828                  n
10829                </span>
10830              <span class="entry_type_visibility"> [public]</span>
10831
10832
10833            </td> <!-- entry_type -->
10834
10835            <td class="entry_description">
10836              <p>For each available processed output size (defined in
10837<a href="#static_android.scaler.availableProcessedSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes</a>),<wbr/> this property lists the
10838minimum supportable frame duration for that size.<wbr/></p>
10839            </td>
10840
10841            <td class="entry_units">
10842              ns
10843            </td>
10844
10845            <td class="entry_range">
10846              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> TODO: Remove property.<wbr/></p>
10847            </td>
10848
10849            <td class="entry_tags">
10850              <ul class="entry_tags">
10851                  <li><a href="#tag_BC">BC</a></li>
10852              </ul>
10853            </td>
10854
10855          </tr>
10856          <tr class="entries_header">
10857            <th class="th_details" colspan="5">Details</th>
10858          </tr>
10859          <tr class="entry_cont">
10860            <td class="entry_details" colspan="5">
10861              <p>This should correspond to the frame duration when only that processed
10862stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
10863set to FAST.<wbr/></p>
10864<p>When multiple streams are configured,<wbr/> the minimum frame duration will
10865be &gt;= max(individual stream min durations).<wbr/></p>
10866            </td>
10867          </tr>
10868
10869
10870          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10871           <!-- end of entry -->
10872        
10873                
10874          <tr class="entry" id="static_android.scaler.availableProcessedSizes">
10875            <td class="entry_name" rowspan="5">
10876              android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes
10877            </td>
10878            <td class="entry_type">
10879                <span class="entry_type_name">int32</span>
10880                <span class="entry_type_container">x</span>
10881
10882                <span class="entry_type_array">
10883                  n x 2
10884                </span>
10885              <span class="entry_type_visibility"> [public as size]</span>
10886
10887
10888            </td> <!-- entry_type -->
10889
10890            <td class="entry_description">
10891              <p>The resolutions available for use with
10892processed output streams,<wbr/> such as YV12,<wbr/> NV12,<wbr/> and
10893platform opaque YUV/<wbr/>RGB streams to the GPU or video
10894encoders.<wbr/></p>
10895            </td>
10896
10897            <td class="entry_units">
10898            </td>
10899
10900            <td class="entry_range">
10901              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> TODO: Remove property.<wbr/></p>
10902            </td>
10903
10904            <td class="entry_tags">
10905              <ul class="entry_tags">
10906                  <li><a href="#tag_BC">BC</a></li>
10907              </ul>
10908            </td>
10909
10910          </tr>
10911          <tr class="entries_header">
10912            <th class="th_details" colspan="5">Details</th>
10913          </tr>
10914          <tr class="entry_cont">
10915            <td class="entry_details" colspan="5">
10916              <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p>
10917<p>For a given use case,<wbr/> the actual maximum supported resolution
10918may be lower than what is listed here,<wbr/> depending on the destination
10919Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
10920the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
10921smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
10922can provide.<wbr/></p>
10923<p>Please reference the documentation for the image data destination to
10924check if it limits the maximum size for image data.<wbr/></p>
10925            </td>
10926          </tr>
10927
10928          <tr class="entries_header">
10929            <th class="th_details" colspan="5">HAL Implementation Details</th>
10930          </tr>
10931          <tr class="entry_cont">
10932            <td class="entry_details" colspan="5">
10933              <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/>
10934the HAL must include all JPEG sizes listed in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a>
10935and each below resolution if it is smaller than or equal to the sensor
10936maximum resolution (if they are not listed in JPEG sizes already):</p>
10937<ul>
10938<li>240p (320 x 240)</li>
10939<li>480p (640 x 480)</li>
10940<li>720p (1280 x 720)</li>
10941<li>1080p (1920 x 1080)</li>
10942</ul>
10943<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/>
10944the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p>
10945            </td>
10946          </tr>
10947
10948          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10949           <!-- end of entry -->
10950        
10951                
10952          <tr class="entry" id="static_android.scaler.availableRawMinDurations">
10953            <td class="entry_name" rowspan="3">
10954              android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations
10955            </td>
10956            <td class="entry_type">
10957                <span class="entry_type_name">int64</span>
10958                <span class="entry_type_container">x</span>
10959
10960                <span class="entry_type_array">
10961                  n
10962                </span>
10963              <span class="entry_type_visibility"> [system]</span>
10964
10965
10966            </td> <!-- entry_type -->
10967
10968            <td class="entry_description">
10969              <p>For each available raw output size (defined in
10970<a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a>),<wbr/> this property lists the minimum
10971supportable frame duration for that size.<wbr/></p>
10972            </td>
10973
10974            <td class="entry_units">
10975              ns
10976            </td>
10977
10978            <td class="entry_range">
10979              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> TODO: Remove property.<wbr/></p>
10980            </td>
10981
10982            <td class="entry_tags">
10983              <ul class="entry_tags">
10984                  <li><a href="#tag_BC">BC</a></li>
10985              </ul>
10986            </td>
10987
10988          </tr>
10989          <tr class="entries_header">
10990            <th class="th_details" colspan="5">Details</th>
10991          </tr>
10992          <tr class="entry_cont">
10993            <td class="entry_details" colspan="5">
10994              <p>Should correspond to the frame duration when only the raw stream is
10995active.<wbr/></p>
10996<p>When multiple streams are configured,<wbr/> the minimum
10997frame duration will be &gt;= max(individual stream min
10998durations)</p>
10999            </td>
11000          </tr>
11001
11002
11003          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11004           <!-- end of entry -->
11005        
11006                
11007          <tr class="entry" id="static_android.scaler.availableRawSizes">
11008            <td class="entry_name" rowspan="1">
11009              android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes
11010            </td>
11011            <td class="entry_type">
11012                <span class="entry_type_name">int32</span>
11013                <span class="entry_type_container">x</span>
11014
11015                <span class="entry_type_array">
11016                  n x 2
11017                </span>
11018              <span class="entry_type_visibility"> [system as size]</span>
11019
11020
11021            </td> <!-- entry_type -->
11022
11023            <td class="entry_description">
11024              <p>The resolutions available for use with raw
11025sensor output streams,<wbr/> listed as width,<wbr/>
11026height</p>
11027            </td>
11028
11029            <td class="entry_units">
11030            </td>
11031
11032            <td class="entry_range">
11033              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> TODO: Remove property.<wbr/>
11034Must include: - sensor maximum resolution.<wbr/></p>
11035            </td>
11036
11037            <td class="entry_tags">
11038            </td>
11039
11040          </tr>
11041
11042
11043          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11044           <!-- end of entry -->
11045        
11046                
11047          <tr class="entry" id="static_android.scaler.availableInputOutputFormatsMap">
11048            <td class="entry_name" rowspan="5">
11049              android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map
11050            </td>
11051            <td class="entry_type">
11052                <span class="entry_type_name">int32</span>
11053                <span class="entry_type_container">x</span>
11054
11055                <span class="entry_type_array">
11056                  n
11057                </span>
11058              <span class="entry_type_visibility"> [public as imageFormat]</span>
11059
11060
11061            </td> <!-- entry_type -->
11062
11063            <td class="entry_description">
11064              <p>The mapping of image formats that are supported by this
11065camera device for input streams,<wbr/> to their corresponding output formats.<wbr/></p>
11066            </td>
11067
11068            <td class="entry_units">
11069            </td>
11070
11071            <td class="entry_range">
11072              <p>See <a href="#static_android.scaler.availableFormats">android.<wbr/>scaler.<wbr/>available<wbr/>Formats</a> for enum definitions.<wbr/></p>
11073            </td>
11074
11075            <td class="entry_tags">
11076            </td>
11077
11078          </tr>
11079          <tr class="entries_header">
11080            <th class="th_details" colspan="5">Details</th>
11081          </tr>
11082          <tr class="entry_cont">
11083            <td class="entry_details" colspan="5">
11084              <p>All camera devices with at least 1
11085<a href="#static_android.request.maxNumInputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams</a> will have at least one
11086available input format.<wbr/></p>
11087<p>The camera device will support the following map of formats,<wbr/>
11088if its dependent capability is supported:</p>
11089<table>
11090<thead>
11091<tr>
11092<th align="left">Input Format</th>
11093<th align="left">Output Format</th>
11094<th align="left">Capability</th>
11095</tr>
11096</thead>
11097<tbody>
11098<tr>
11099<td align="left">RAW_<wbr/>OPAQUE</td>
11100<td align="left">JPEG</td>
11101<td align="left">ZSL</td>
11102</tr>
11103<tr>
11104<td align="left">RAW_<wbr/>OPAQUE</td>
11105<td align="left">YUV_<wbr/>420_<wbr/>888</td>
11106<td align="left">ZSL</td>
11107</tr>
11108<tr>
11109<td align="left">RAW_<wbr/>OPAQUE</td>
11110<td align="left">RAW16</td>
11111<td align="left">DNG</td>
11112</tr>
11113<tr>
11114<td align="left">RAW16</td>
11115<td align="left">YUV_<wbr/>420_<wbr/>888</td>
11116<td align="left">DNG</td>
11117</tr>
11118<tr>
11119<td align="left">RAW16</td>
11120<td align="left">JPEG</td>
11121<td align="left">DNG</td>
11122</tr>
11123</tbody>
11124</table>
11125<p>For ZSL-capable camera devices,<wbr/> using the RAW_<wbr/>OPAQUE format
11126as either input or output will never hurt maximum frame rate (i.<wbr/>e.<wbr/>
11127<a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a> will not have RAW_<wbr/>OPAQUE).<wbr/></p>
11128<p>Attempting to configure an input stream with output streams not
11129listed as available in this map is not valid.<wbr/></p>
11130<p>TODO: Add java type mapping for this property.<wbr/></p>
11131            </td>
11132          </tr>
11133
11134          <tr class="entries_header">
11135            <th class="th_details" colspan="5">HAL Implementation Details</th>
11136          </tr>
11137          <tr class="entry_cont">
11138            <td class="entry_details" colspan="5">
11139              <p>This value is encoded as a variable-size array-of-arrays.<wbr/>
11140The inner array always contains <code>[format,<wbr/> length,<wbr/> ...<wbr/>]</code> where
11141<code>...<wbr/></code> has <code>length</code> elements.<wbr/> An inner array is followed by another
11142inner array if the total metadata entry size hasn't yet been exceeded.<wbr/></p>
11143<p>A code sample to read/<wbr/>write this encoding (with a device that
11144supports reprocessing RAW_<wbr/>OPAQUE to RAW16,<wbr/> YUV_<wbr/>420_<wbr/>888,<wbr/> and JPEG,<wbr/>
11145and reprocessing RAW16 to YUV_<wbr/>420_<wbr/>888 and JPEG):</p>
11146<pre><code>//<wbr/> reading
11147int32_<wbr/>t* contents = &amp;entry.<wbr/>i32[0];
11148for (size_<wbr/>t i = 0; i &lt; entry.<wbr/>count; ) {
11149    int32_<wbr/>t format = contents[i++];
11150    int32_<wbr/>t length = contents[i++];
11151    int32_<wbr/>t output_<wbr/>formats[length];
11152    memcpy(&amp;output_<wbr/>formats[0],<wbr/> &amp;contents[i],<wbr/>
11153           length * sizeof(int32_<wbr/>t));
11154    i += length;
11155}
11156
11157//<wbr/> writing (static example,<wbr/> DNG+ZSL)
11158int32_<wbr/>t[] contents = {
11159  RAW_<wbr/>OPAQUE,<wbr/> 3,<wbr/> RAW16,<wbr/> YUV_<wbr/>420_<wbr/>888,<wbr/> BLOB,<wbr/>
11160  RAW16,<wbr/> 2,<wbr/> YUV_<wbr/>420_<wbr/>888,<wbr/> BLOB,<wbr/>
11161};
11162update_<wbr/>camera_<wbr/>metadata_<wbr/>entry(metadata,<wbr/> index,<wbr/> &amp;contents[0],<wbr/>
11163      sizeof(contents)/<wbr/>sizeof(contents[0]),<wbr/> &amp;updated_<wbr/>entry);
11164</code></pre>
11165<p>If the HAL claims to support any of the capabilities listed in the
11166above details,<wbr/> then it must also support all the input-output
11167combinations listed for that capability.<wbr/> It can optionally support
11168additional formats if it so chooses.<wbr/></p>
11169<p>Refer to <a href="#static_android.scaler.availableFormats">android.<wbr/>scaler.<wbr/>available<wbr/>Formats</a> for the enum values
11170which correspond to HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
11171system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
11172            </td>
11173          </tr>
11174
11175          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11176           <!-- end of entry -->
11177        
11178                
11179          <tr class="entry" id="static_android.scaler.availableStreamConfigurations">
11180            <td class="entry_name" rowspan="5">
11181              android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations
11182            </td>
11183            <td class="entry_type">
11184                <span class="entry_type_name entry_type_name_enum">int32</span>
11185                <span class="entry_type_container">x</span>
11186
11187                <span class="entry_type_array">
11188                  n x 4
11189                </span>
11190              <span class="entry_type_visibility"> [public]</span>
11191
11192                <ul class="entry_type_enum">
11193                  <li>
11194                    <span class="entry_type_enum_name">OUTPUT</span>
11195                  </li>
11196                  <li>
11197                    <span class="entry_type_enum_name">INPUT</span>
11198                  </li>
11199                </ul>
11200
11201            </td> <!-- entry_type -->
11202
11203            <td class="entry_description">
11204              <p>The available stream configurations that this
11205camera device supports
11206(i.<wbr/>e.<wbr/> format,<wbr/> width,<wbr/> height,<wbr/> output/<wbr/>input stream).<wbr/></p>
11207            </td>
11208
11209            <td class="entry_units">
11210            </td>
11211
11212            <td class="entry_range">
11213            </td>
11214
11215            <td class="entry_tags">
11216            </td>
11217
11218          </tr>
11219          <tr class="entries_header">
11220            <th class="th_details" colspan="5">Details</th>
11221          </tr>
11222          <tr class="entry_cont">
11223            <td class="entry_details" colspan="5">
11224              <p>The configurations are listed as <code>(format,<wbr/> width,<wbr/> height,<wbr/> input?)</code>
11225tuples.<wbr/></p>
11226<p>All camera devices will support sensor maximum resolution (defined by
11227<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>) for the JPEG format.<wbr/></p>
11228<p>For a given use case,<wbr/> the actual maximum supported resolution
11229may be lower than what is listed here,<wbr/> depending on the destination
11230Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
11231the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
11232smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
11233can provide.<wbr/></p>
11234<p>Please reference the documentation for the image data destination to
11235check if it limits the maximum size for image data.<wbr/></p>
11236<p>Not all output formats may be supported in a configuration with
11237an input stream of a particular format.<wbr/> For more details,<wbr/> see
11238<a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a>.<wbr/></p>
11239<p>The following table describes the minimum required output stream
11240configurations based on the hardware level
11241(<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a>):</p>
11242<table>
11243<thead>
11244<tr>
11245<th align="center">Format</th>
11246<th align="center">Size</th>
11247<th align="center">Hardware Level</th>
11248<th align="center">Notes</th>
11249</tr>
11250</thead>
11251<tbody>
11252<tr>
11253<td align="center">JPEG</td>
11254<td align="center"><a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></td>
11255<td align="center">Any</td>
11256<td align="center"></td>
11257</tr>
11258<tr>
11259<td align="center">JPEG</td>
11260<td align="center">1920x1080 (1080p)</td>
11261<td align="center">Any</td>
11262<td align="center">if 1080p &lt;= activeArraySize</td>
11263</tr>
11264<tr>
11265<td align="center">JPEG</td>
11266<td align="center">1280x720 (720)</td>
11267<td align="center">Any</td>
11268<td align="center">if 720p &lt;= activeArraySize</td>
11269</tr>
11270<tr>
11271<td align="center">JPEG</td>
11272<td align="center">640x480 (480p)</td>
11273<td align="center">Any</td>
11274<td align="center">if 480p &lt;= activeArraySize</td>
11275</tr>
11276<tr>
11277<td align="center">JPEG</td>
11278<td align="center">320x240 (240p)</td>
11279<td align="center">Any</td>
11280<td align="center">if 240p &lt;= activeArraySize</td>
11281</tr>
11282<tr>
11283<td align="center">YUV_<wbr/>420_<wbr/>888</td>
11284<td align="center">all output sizes available for JPEG</td>
11285<td align="center">FULL</td>
11286<td align="center"></td>
11287</tr>
11288<tr>
11289<td align="center">YUV_<wbr/>420_<wbr/>888</td>
11290<td align="center">all output sizes available for JPEG,<wbr/> up to the maximum video size</td>
11291<td align="center">LIMITED</td>
11292<td align="center"></td>
11293</tr>
11294<tr>
11295<td align="center">IMPLEMENTATION_<wbr/>DEFINED</td>
11296<td align="center">same as YUV_<wbr/>420_<wbr/>888</td>
11297<td align="center">Any</td>
11298<td align="center"></td>
11299</tr>
11300</tbody>
11301</table>
11302<p>Refer to <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> for additional
11303mandatory stream configurations on a per-capability basis.<wbr/></p>
11304            </td>
11305          </tr>
11306
11307          <tr class="entries_header">
11308            <th class="th_details" colspan="5">HAL Implementation Details</th>
11309          </tr>
11310          <tr class="entry_cont">
11311            <td class="entry_details" colspan="5">
11312              <p>It is recommended (but not mandatory) to also include half/<wbr/>quarter
11313of sensor maximum resolution for JPEG formats (regardless of hardware
11314level).<wbr/></p>
11315<p>(The following is a rewording of the above required table):</p>
11316<p>The HAL must include sensor maximum resolution (defined by
11317<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>).<wbr/></p>
11318<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/>
11319the HAL must include all YUV_<wbr/>420_<wbr/>888 sizes that have JPEG sizes listed
11320here as output streams.<wbr/></p>
11321<p>It must also include each below resolution if it is smaller than or
11322equal to the sensor maximum resolution (for both YUV_<wbr/>420_<wbr/>888 and JPEG
11323formats),<wbr/> as output streams:</p>
11324<ul>
11325<li>240p (320 x 240)</li>
11326<li>480p (640 x 480)</li>
11327<li>720p (1280 x 720)</li>
11328<li>1080p (1920 x 1080)</li>
11329</ul>
11330<p>For LIMITED capability devices
11331(<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>),<wbr/>
11332the HAL only has to list up to the maximum video size
11333supported by the device.<wbr/></p>
11334<p>Regardless of hardware level,<wbr/> every output resolution available for
11335YUV_<wbr/>420_<wbr/>888 must also be available for IMPLEMENTATION_<wbr/>DEFINED.<wbr/></p>
11336<p>This supercedes the following fields,<wbr/> which are now deprecated:</p>
11337<ul>
11338<li>availableFormats</li>
11339<li>available[Processed,<wbr/>Raw,<wbr/>Jpeg]Sizes</li>
11340</ul>
11341            </td>
11342          </tr>
11343
11344          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11345           <!-- end of entry -->
11346        
11347                
11348          <tr class="entry" id="static_android.scaler.availableMinFrameDurations">
11349            <td class="entry_name" rowspan="3">
11350              android.<wbr/>scaler.<wbr/>available<wbr/>Min<wbr/>Frame<wbr/>Durations
11351            </td>
11352            <td class="entry_type">
11353                <span class="entry_type_name">int64</span>
11354                <span class="entry_type_container">x</span>
11355
11356                <span class="entry_type_array">
11357                  4 x n
11358                </span>
11359              <span class="entry_type_visibility"> [public]</span>
11360
11361
11362            </td> <!-- entry_type -->
11363
11364            <td class="entry_description">
11365              <p>This lists the minimum frame duration for each
11366format/<wbr/>size combination.<wbr/></p>
11367            </td>
11368
11369            <td class="entry_units">
11370              (format,<wbr/> width,<wbr/> height,<wbr/> ns) x n
11371            </td>
11372
11373            <td class="entry_range">
11374            </td>
11375
11376            <td class="entry_tags">
11377              <ul class="entry_tags">
11378                  <li><a href="#tag_BC">BC</a></li>
11379              </ul>
11380            </td>
11381
11382          </tr>
11383          <tr class="entries_header">
11384            <th class="th_details" colspan="5">Details</th>
11385          </tr>
11386          <tr class="entry_cont">
11387            <td class="entry_details" colspan="5">
11388              <p>This should correspond to the frame duration when only that
11389stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
11390set to either OFF or FAST.<wbr/></p>
11391<p>When multiple streams are used in a request,<wbr/> the minimum frame
11392duration will be max(individual stream min durations).<wbr/></p>
11393<p>The minimum frame duration of a stream (of a particular format,<wbr/> size)
11394is the same regardless of whether the stream is input or output.<wbr/></p>
11395<p>See <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> and
11396<a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a> for more details about
11397calculating the max frame rate.<wbr/></p>
11398            </td>
11399          </tr>
11400
11401
11402          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11403           <!-- end of entry -->
11404        
11405                
11406          <tr class="entry" id="static_android.scaler.availableStallDurations">
11407            <td class="entry_name" rowspan="5">
11408              android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations
11409            </td>
11410            <td class="entry_type">
11411                <span class="entry_type_name">int64</span>
11412                <span class="entry_type_container">x</span>
11413
11414                <span class="entry_type_array">
11415                  4 x n
11416                </span>
11417              <span class="entry_type_visibility"> [public]</span>
11418
11419
11420            </td> <!-- entry_type -->
11421
11422            <td class="entry_description">
11423              <p>This lists the maximum stall duration for each
11424format/<wbr/>size combination.<wbr/></p>
11425            </td>
11426
11427            <td class="entry_units">
11428              (format,<wbr/> width,<wbr/> height,<wbr/> ns) x n
11429            </td>
11430
11431            <td class="entry_range">
11432            </td>
11433
11434            <td class="entry_tags">
11435              <ul class="entry_tags">
11436                  <li><a href="#tag_BC">BC</a></li>
11437              </ul>
11438            </td>
11439
11440          </tr>
11441          <tr class="entries_header">
11442            <th class="th_details" colspan="5">Details</th>
11443          </tr>
11444          <tr class="entry_cont">
11445            <td class="entry_details" colspan="5">
11446              <p>A stall duration is how much extra time would get added
11447to the normal minimum frame duration for a repeating request
11448that has streams with non-zero stall.<wbr/></p>
11449<p>For example,<wbr/> consider JPEG captures which have the following
11450characteristics:</p>
11451<ul>
11452<li>JPEG streams act like processed YUV streams in requests for which
11453they are not included; in requests in which they are directly
11454referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
11455JPEG stream requires the underlying YUV data to always be ready for
11456use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
11457frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
11458<li>The JPEG processor can run concurrently to the rest of the camera
11459pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
11460</ul>
11461<p>In other words,<wbr/> using a repeating YUV request would result
11462in a steady frame rate (let's say it's 30 FPS).<wbr/> If a single
11463JPEG request is submitted periodically,<wbr/> the frame rate will stay
11464at 30 FPS (as long as we wait for the previous JPEG to return each
11465time).<wbr/> If we try to submit a repeating YUV + JPEG request,<wbr/> then
11466the frame rate will drop from 30 FPS.<wbr/></p>
11467<p>In general,<wbr/> submitting a new request with a non-0 stall time
11468stream will <em>not</em> cause a frame rate drop unless there are still
11469outstanding buffers for that stream from previous requests.<wbr/></p>
11470<p>Submitting a repeating request with streams (call this <code>S</code>)
11471is the same as setting the minimum frame duration from
11472the normal minimum frame duration corresponding to <code>S</code>,<wbr/> added with
11473the maximum stall duration for <code>S</code>.<wbr/></p>
11474<p>If interleaving requests with and without a stall duration,<wbr/>
11475a request will stall by the maximum of the remaining times
11476for each can-stall stream with outstanding buffers.<wbr/></p>
11477<p>This means that a stalling request will not have an exposure start
11478until the stall has completed.<wbr/></p>
11479<p>This should correspond to the stall duration when only that stream is
11480active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST
11481or OFF.<wbr/> Setting any of the processing modes to HIGH_<wbr/>QUALITY
11482effectively results in an indeterminate stall duration for all
11483streams in a request (the regular stall calculation rules are
11484ignored).<wbr/></p>
11485<p>The following formats may always have a stall duration:</p>
11486<ul>
11487<li>JPEG</li>
11488<li>RAW16</li>
11489</ul>
11490<p>The following formats will never have a stall duration:</p>
11491<ul>
11492<li>YUV_<wbr/>420_<wbr/>888</li>
11493<li>IMPLEMENTATION_<wbr/>DEFINED</li>
11494</ul>
11495<p>All other formats may or may not have an allowed stall duration on
11496a per-capability basis; refer to <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>
11497for more details.<wbr/></p>
11498<p>See <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> for more information about
11499calculating the max frame rate (absent stalls).<wbr/></p>
11500            </td>
11501          </tr>
11502
11503          <tr class="entries_header">
11504            <th class="th_details" colspan="5">HAL Implementation Details</th>
11505          </tr>
11506          <tr class="entry_cont">
11507            <td class="entry_details" colspan="5">
11508              <p>If possible,<wbr/> it is recommended that all non-JPEG formats
11509(such as RAW16) should not have a stall duration.<wbr/></p>
11510            </td>
11511          </tr>
11512
11513          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11514           <!-- end of entry -->
11515        
11516        
11517
11518      <!-- end of kind -->
11519      </tbody>
11520      <tr><td colspan="6" class="kind">dynamic</td></tr>
11521
11522      <thead class="entries_header">
11523        <tr>
11524          <th class="th_name">Property Name</th>
11525          <th class="th_type">Type</th>
11526          <th class="th_description">Description</th>
11527          <th class="th_units">Units</th>
11528          <th class="th_range">Range</th>
11529          <th class="th_tags">Tags</th>
11530        </tr>
11531      </thead>
11532
11533      <tbody>
11534
11535        
11536
11537        
11538
11539        
11540
11541        
11542
11543                
11544          <tr class="entry" id="dynamic_android.scaler.cropRegion">
11545            <td class="entry_name" rowspan="3">
11546              android.<wbr/>scaler.<wbr/>crop<wbr/>Region
11547            </td>
11548            <td class="entry_type">
11549                <span class="entry_type_name">int32</span>
11550                <span class="entry_type_container">x</span>
11551
11552                <span class="entry_type_array">
11553                  4
11554                </span>
11555              <span class="entry_type_visibility"> [public as rectangle]</span>
11556
11557
11558            </td> <!-- entry_type -->
11559
11560            <td class="entry_description">
11561              <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
11562<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
11563(width,<wbr/> height).<wbr/> The region of the sensor that is used for
11564output.<wbr/> Each stream must use this rectangle to produce its
11565output,<wbr/> cropping to a smaller region if necessary to
11566maintain the stream's aspect ratio.<wbr/></p>
11567<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
11568            </td>
11569
11570            <td class="entry_units">
11571              (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
11572          in pixels; (0,<wbr/>0) is top-left corner of
11573          android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
11574            </td>
11575
11576            <td class="entry_range">
11577            </td>
11578
11579            <td class="entry_tags">
11580              <ul class="entry_tags">
11581                  <li><a href="#tag_BC">BC</a></li>
11582              </ul>
11583            </td>
11584
11585          </tr>
11586          <tr class="entries_header">
11587            <th class="th_details" colspan="5">Details</th>
11588          </tr>
11589          <tr class="entry_cont">
11590            <td class="entry_details" colspan="5">
11591              <p>Any additional per-stream cropping must be done to
11592maximize the final pixel area of the stream.<wbr/></p>
11593<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
11594ratio,<wbr/> then 4:3 streams should use the exact crop
11595region.<wbr/> 16:9 streams should further crop vertically
11596(letterbox).<wbr/></p>
11597<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
11598outputs should crop horizontally (pillarbox),<wbr/> and 16:9
11599streams should match exactly.<wbr/> These additional crops must
11600be centered within the crop region.<wbr/></p>
11601<p>The output streams must maintain square pixels at all
11602times,<wbr/> no matter what the relative aspect ratios of the
11603crop region and the stream are.<wbr/>  Negative values for
11604corner are allowed for raw output if full pixel array is
11605larger than active pixel array.<wbr/> Width and height may be
11606rounded to nearest larger supportable width,<wbr/> especially
11607for raw output,<wbr/> where only a few fixed scales may be
11608possible.<wbr/> The width and height of the crop region cannot
11609be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
11610<a href="#static_android.scaler.availableMaxDigitalZoom">android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom</a> ) and floor(
11611activeArraySize.<wbr/>height /<wbr/>
11612<a href="#static_android.scaler.availableMaxDigitalZoom">android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom</a>),<wbr/> respectively.<wbr/></p>
11613            </td>
11614          </tr>
11615
11616
11617          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11618           <!-- end of entry -->
11619        
11620        
11621
11622      <!-- end of kind -->
11623      </tbody>
11624
11625  <!-- end of section -->
11626  <tr><td colspan="6" id="section_sensor" class="section">sensor</td></tr>
11627
11628
11629      <tr><td colspan="6" class="kind">controls</td></tr>
11630
11631      <thead class="entries_header">
11632        <tr>
11633          <th class="th_name">Property Name</th>
11634          <th class="th_type">Type</th>
11635          <th class="th_description">Description</th>
11636          <th class="th_units">Units</th>
11637          <th class="th_range">Range</th>
11638          <th class="th_tags">Tags</th>
11639        </tr>
11640      </thead>
11641
11642      <tbody>
11643
11644        
11645
11646        
11647
11648        
11649
11650        
11651
11652                
11653          <tr class="entry" id="controls_android.sensor.exposureTime">
11654            <td class="entry_name" rowspan="3">
11655              android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
11656            </td>
11657            <td class="entry_type">
11658                <span class="entry_type_name">int64</span>
11659
11660              <span class="entry_type_visibility"> [public]</span>
11661
11662
11663            </td> <!-- entry_type -->
11664
11665            <td class="entry_description">
11666              <p>Duration each pixel is exposed to
11667light.<wbr/></p>
11668            </td>
11669
11670            <td class="entry_units">
11671              nanoseconds
11672            </td>
11673
11674            <td class="entry_range">
11675              <p><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></p>
11676            </td>
11677
11678            <td class="entry_tags">
11679              <ul class="entry_tags">
11680                  <li><a href="#tag_V1">V1</a></li>
11681              </ul>
11682            </td>
11683
11684          </tr>
11685          <tr class="entries_header">
11686            <th class="th_details" colspan="5">Details</th>
11687          </tr>
11688          <tr class="entry_cont">
11689            <td class="entry_details" colspan="5">
11690              <p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
11691duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
11692            </td>
11693          </tr>
11694
11695
11696          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11697           <!-- end of entry -->
11698        
11699                
11700          <tr class="entry" id="controls_android.sensor.frameDuration">
11701            <td class="entry_name" rowspan="3">
11702              android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
11703            </td>
11704            <td class="entry_type">
11705                <span class="entry_type_name">int64</span>
11706
11707              <span class="entry_type_visibility"> [public]</span>
11708
11709
11710            </td> <!-- entry_type -->
11711
11712            <td class="entry_description">
11713              <p>Duration from start of frame exposure to
11714start of next frame exposure.<wbr/></p>
11715            </td>
11716
11717            <td class="entry_units">
11718              nanoseconds
11719            </td>
11720
11721            <td class="entry_range">
11722              <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
11723<a href="#static_android.scaler.availableMinFrameDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Min<wbr/>Frame<wbr/>Durations</a>.<wbr/> The duration
11724is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
11725            </td>
11726
11727            <td class="entry_tags">
11728              <ul class="entry_tags">
11729                  <li><a href="#tag_V1">V1</a></li>
11730                  <li><a href="#tag_BC">BC</a></li>
11731              </ul>
11732            </td>
11733
11734          </tr>
11735          <tr class="entries_header">
11736            <th class="th_details" colspan="5">Details</th>
11737          </tr>
11738          <tr class="entry_cont">
11739            <td class="entry_details" colspan="5">
11740              <p>The maximum frame rate that can be supported by a camera subsystem is
11741a function of many factors:</p>
11742<ul>
11743<li>Requested resolutions of output image streams</li>
11744<li>Availability of binning /<wbr/> skipping modes on the imager</li>
11745<li>The bandwidth of the imager interface</li>
11746<li>The bandwidth of the various ISP processing blocks</li>
11747</ul>
11748<p>Since these factors can vary greatly between different ISPs and
11749sensors,<wbr/> the camera abstraction tries to represent the bandwidth
11750restrictions with as simple a model as possible.<wbr/></p>
11751<p>The model presented has the following characteristics:</p>
11752<ul>
11753<li>The image sensor is always configured to output the smallest
11754resolution possible given the application's requested output stream
11755sizes.<wbr/>  The smallest resolution is defined as being at least as large
11756as the largest requested output stream size; the camera pipeline must
11757never digitally upsample sensor data when the crop region covers the
11758whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
11759resolutions are configured,<wbr/> the sensor can provide a higher frame
11760rate.<wbr/></li>
11761<li>Since any request may use any or all the currently configured
11762output streams,<wbr/> the sensor and ISP must be configured to support
11763scaling a single capture to all the streams at the same time.<wbr/>  This
11764means the camera pipeline must be ready to produce the largest
11765requested output size without any delay.<wbr/>  Therefore,<wbr/> the overall
11766frame rate of a given configured stream set is governed only by the
11767largest requested stream resolution.<wbr/></li>
11768<li>Using more than one output stream in a request does not affect the
11769frame duration.<wbr/></li>
11770<li>Certain format-streams may need to do additional background processing
11771before data is consumed/<wbr/>produced by that stream.<wbr/> These processors
11772can run concurrently to the rest of the camera pipeline,<wbr/> but
11773cannot process more than 1 capture at a time.<wbr/></li>
11774</ul>
11775<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
11776is provided via the <a href="#static_android.scaler.availableMinFrameDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Min<wbr/>Frame<wbr/>Durations</a> field.<wbr/>
11777These are used to determine the maximum frame rate /<wbr/> minimum frame
11778duration that is possible for a given stream configuration.<wbr/></p>
11779<p>Specifically,<wbr/> the application can use the following rules to
11780determine the minimum frame duration it can request from the camera
11781device:</p>
11782<ol>
11783<li>Let the set of currently configured input/<wbr/>output streams
11784be called <code>S</code>.<wbr/></li>
11785<li>Find the minimum frame durations for each stream in <code>S</code>,<wbr/> by
11786looking it up in <a href="#static_android.scaler.availableMinFrameDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Min<wbr/>Frame<wbr/>Durations</a> (with
11787its respective size/<wbr/>format).<wbr/> Let this set of frame durations be called
11788<code>F</code>.<wbr/></li>
11789<li>For any given request <code>R</code>,<wbr/> the minimum frame duration allowed
11790for <code>R</code> is the maximum out of all values in <code>F</code>.<wbr/> Let the streams
11791used in <code>R</code> be called <code>S_<wbr/>r</code>.<wbr/></li>
11792</ol>
11793<p>If none of the streams in <code>S_<wbr/>r</code> have a stall time (listed in
11794<a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a>),<wbr/> then the frame duration in
11795<code>F</code> determines the steady state frame rate that the application will
11796get if it uses <code>R</code> as a repeating request.<wbr/> Let this special kind
11797of request be called <code>Rsimple</code>.<wbr/></p>
11798<p>A repeating request <code>Rsimple</code> can be <em>occasionally</em> interleaved
11799by a single capture of a new request <code>Rstall</code> (which has at least
11800one in-use stream with a non-0 stall time) and if <code>Rstall</code> has the
11801same minimum frame duration this will not cause a frame rate loss
11802if all buffers from the previous <code>Rstall</code> have already been
11803delivered.<wbr/></p>
11804<p>For more details about stalling,<wbr/> see
11805<a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a>.<wbr/></p>
11806            </td>
11807          </tr>
11808
11809
11810          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11811           <!-- end of entry -->
11812        
11813                
11814          <tr class="entry" id="controls_android.sensor.sensitivity">
11815            <td class="entry_name" rowspan="3">
11816              android.<wbr/>sensor.<wbr/>sensitivity
11817            </td>
11818            <td class="entry_type">
11819                <span class="entry_type_name">int32</span>
11820
11821              <span class="entry_type_visibility"> [public]</span>
11822
11823
11824            </td> <!-- entry_type -->
11825
11826            <td class="entry_description">
11827              <p>Gain applied to image data.<wbr/> Must be
11828implemented through analog gain only if set to values
11829below 'maximum analog sensitivity'.<wbr/></p>
11830<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
11831gain to the nearest possible value (rather than gain more).<wbr/></p>
11832            </td>
11833
11834            <td class="entry_units">
11835              ISO arithmetic units
11836            </td>
11837
11838            <td class="entry_range">
11839              <p><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></p>
11840            </td>
11841
11842            <td class="entry_tags">
11843              <ul class="entry_tags">
11844                  <li><a href="#tag_V1">V1</a></li>
11845              </ul>
11846            </td>
11847
11848          </tr>
11849          <tr class="entries_header">
11850            <th class="th_details" colspan="5">Details</th>
11851          </tr>
11852          <tr class="entry_cont">
11853            <td class="entry_details" colspan="5">
11854              <p>ISO 12232:2006 REI method</p>
11855            </td>
11856          </tr>
11857
11858
11859          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11860           <!-- end of entry -->
11861        
11862                
11863          <tr class="entry" id="controls_android.sensor.testPatternData">
11864            <td class="entry_name" rowspan="5">
11865              android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
11866            </td>
11867            <td class="entry_type">
11868                <span class="entry_type_name">int32</span>
11869                <span class="entry_type_container">x</span>
11870
11871                <span class="entry_type_array">
11872                  4
11873                </span>
11874              <span class="entry_type_visibility"> [public]</span>
11875
11876
11877            </td> <!-- entry_type -->
11878
11879            <td class="entry_description">
11880              <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
11881when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
11882            </td>
11883
11884            <td class="entry_units">
11885            </td>
11886
11887            <td class="entry_range">
11888              <p>Optional.<wbr/>
11889Must be supported if <a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a> contains
11890SOLID_<wbr/>COLOR.<wbr/></p>
11891            </td>
11892
11893            <td class="entry_tags">
11894            </td>
11895
11896          </tr>
11897          <tr class="entries_header">
11898            <th class="th_details" colspan="5">Details</th>
11899          </tr>
11900          <tr class="entry_cont">
11901            <td class="entry_details" colspan="5">
11902              <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
11903The camera device then uses the most significant X bits
11904that correspond to how many bits are in its Bayer raw sensor
11905output.<wbr/></p>
11906<p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
1190710 most significant bits from each color channel.<wbr/></p>
11908            </td>
11909          </tr>
11910
11911          <tr class="entries_header">
11912            <th class="th_details" colspan="5">HAL Implementation Details</th>
11913          </tr>
11914          <tr class="entry_cont">
11915            <td class="entry_details" colspan="5">
11916              
11917            </td>
11918          </tr>
11919
11920          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11921           <!-- end of entry -->
11922        
11923                
11924          <tr class="entry" id="controls_android.sensor.testPatternMode">
11925            <td class="entry_name" rowspan="5">
11926              android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
11927            </td>
11928            <td class="entry_type">
11929                <span class="entry_type_name entry_type_name_enum">int32</span>
11930
11931              <span class="entry_type_visibility"> [public]</span>
11932
11933                <ul class="entry_type_enum">
11934                  <li>
11935                    <span class="entry_type_enum_name">OFF</span>
11936                    <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
11937device returns captures from the image sensor.<wbr/></p></span>
11938                  </li>
11939                  <li>
11940                    <span class="entry_type_enum_name">SOLID_COLOR</span>
11941                    <span class="entry_type_enum_notes"><p>Each pixel in <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> is replaced by its
11942respective color channel provided in
11943<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
11944<p>For example:</p>
11945<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
11946</code></pre>
11947<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
11948<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
11949</code></pre>
11950<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
11951are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
11952                  </li>
11953                  <li>
11954                    <span class="entry_type_enum_name">COLOR_BARS</span>
11955                    <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
11956<p>The vertical bars (left-to-right) are as follows:</p>
11957<ul>
11958<li>100% white</li>
11959<li>yellow</li>
11960<li>cyan</li>
11961<li>green</li>
11962<li>magenta</li>
11963<li>red</li>
11964<li>blue</li>
11965<li>black</li>
11966</ul>
11967<p>In general the image would look like the following:</p>
11968<pre><code>W Y C G M R B K
11969W Y C G M R B K
11970W Y C G M R B K
11971W Y C G M R B K
11972W Y C G M R B K
11973.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
11974.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
11975.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
11976
11977(B = Blue,<wbr/> K = Black)
11978</code></pre>
11979<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
11980When this is not possible,<wbr/> the bar size should be rounded
11981down to the nearest integer and the pattern can repeat
11982on the right side.<wbr/></p>
11983<p>Each bar's height must always take up the full sensor
11984pixel array height.<wbr/></p>
11985<p>Each pixel in this test pattern must be set to either
119860% intensity or 100% intensity.<wbr/></p></span>
11987                  </li>
11988                  <li>
11989                    <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
11990                    <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
11991each bar should start at its specified color at the top,<wbr/>
11992and fade to gray at the bottom.<wbr/></p>
11993<p>Furthermore each bar is further subdivided into a left and
11994right half.<wbr/> The left half should have a smooth gradient,<wbr/>
11995and the right half should have a quantized gradient.<wbr/></p>
11996<p>In particular,<wbr/> the right half's should consist of blocks of the
11997same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
11998<p>The least significant bits in the quantized gradient should
11999be copied from the most significant bits of the smooth gradient.<wbr/></p>
12000<p>The height of each bar should always be a multiple of 128.<wbr/>
12001When this is not the case,<wbr/> the pattern should repeat at the bottom
12002of the image.<wbr/></p></span>
12003                  </li>
12004                  <li>
12005                    <span class="entry_type_enum_name">PN9</span>
12006                    <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
12007generated from a PN9 512-bit sequence (typically implemented
12008in hardware with a linear feedback shift register).<wbr/></p>
12009<p>The generator should be reset at the beginning of each frame,<wbr/>
12010and thus each subsequent raw frame with this test pattern should
12011be exactly the same as the last.<wbr/></p></span>
12012                  </li>
12013                  <li>
12014                    <span class="entry_type_enum_name">CUSTOM1</span>
12015                    <span class="entry_type_enum_value">256</span>
12016                    <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
12017available only on this camera device are at least this numeric
12018value.<wbr/></p>
12019<p>All of the custom test patterns will be static
12020(that is the raw image must not vary from frame to frame).<wbr/></p></span>
12021                  </li>
12022                </ul>
12023
12024            </td> <!-- entry_type -->
12025
12026            <td class="entry_description">
12027              <p>When enabled,<wbr/> the sensor sends a test pattern instead of
12028doing a real exposure from the camera.<wbr/></p>
12029            </td>
12030
12031            <td class="entry_units">
12032            </td>
12033
12034            <td class="entry_range">
12035              <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
12036<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
12037            </td>
12038
12039            <td class="entry_tags">
12040            </td>
12041
12042          </tr>
12043          <tr class="entries_header">
12044            <th class="th_details" colspan="5">Details</th>
12045          </tr>
12046          <tr class="entry_cont">
12047            <td class="entry_details" colspan="5">
12048              <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
12049by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
12050work as normal.<wbr/></p>
12051<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
12052occur (and that the test pattern remain unmodified,<wbr/> since the flash
12053would not actually affect it).<wbr/></p>
12054            </td>
12055          </tr>
12056
12057          <tr class="entries_header">
12058            <th class="th_details" colspan="5">HAL Implementation Details</th>
12059          </tr>
12060          <tr class="entry_cont">
12061            <td class="entry_details" colspan="5">
12062              <p>All test patterns are specified in the Bayer domain.<wbr/></p>
12063<p>The HAL may choose to substitute test patterns from the sensor
12064with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
12065indistinguishable to the ISP whether the data came from the
12066sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
12067            </td>
12068          </tr>
12069
12070          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12071           <!-- end of entry -->
12072        
12073        
12074
12075      <!-- end of kind -->
12076      </tbody>
12077      <tr><td colspan="6" class="kind">static</td></tr>
12078
12079      <thead class="entries_header">
12080        <tr>
12081          <th class="th_name">Property Name</th>
12082          <th class="th_type">Type</th>
12083          <th class="th_description">Description</th>
12084          <th class="th_units">Units</th>
12085          <th class="th_range">Range</th>
12086          <th class="th_tags">Tags</th>
12087        </tr>
12088      </thead>
12089
12090      <tbody>
12091
12092        
12093
12094        
12095
12096        
12097
12098        
12099                
12100            
12101
12102                
12103          <tr class="entry" id="static_android.sensor.info.activeArraySize">
12104            <td class="entry_name" rowspan="3">
12105              android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
12106            </td>
12107            <td class="entry_type">
12108                <span class="entry_type_name">int32</span>
12109                <span class="entry_type_container">x</span>
12110
12111                <span class="entry_type_array">
12112                  4
12113                </span>
12114              <span class="entry_type_visibility"> [public as rectangle]</span>
12115                <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
12116
12117
12118            </td> <!-- entry_type -->
12119
12120            <td class="entry_description">
12121              <p>Area of raw data which corresponds to only
12122active pixels.<wbr/></p>
12123            </td>
12124
12125            <td class="entry_units">
12126            </td>
12127
12128            <td class="entry_range">
12129              <p>This array contains <code>(xmin,<wbr/> ymin,<wbr/> width,<wbr/> height)</code>.<wbr/> The <code>(xmin,<wbr/> ymin)</code> must be
12130&gt;= <code>(0,<wbr/>0)</code>.<wbr/> The <code>(width,<wbr/> height)</code> must be &lt;=
12131<code><a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a></code>.<wbr/></p>
12132            </td>
12133
12134            <td class="entry_tags">
12135              <ul class="entry_tags">
12136                  <li><a href="#tag_DNG">DNG</a></li>
12137              </ul>
12138            </td>
12139
12140          </tr>
12141          <tr class="entries_header">
12142            <th class="th_details" colspan="5">Details</th>
12143          </tr>
12144          <tr class="entry_cont">
12145            <td class="entry_details" colspan="5">
12146              <p>It is smaller or equal to
12147sensor full pixel array,<wbr/> which could include the black calibration pixels.<wbr/></p>
12148            </td>
12149          </tr>
12150
12151
12152          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12153           <!-- end of entry -->
12154        
12155                
12156          <tr class="entry" id="static_android.sensor.info.sensitivityRange">
12157            <td class="entry_name" rowspan="1">
12158              android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range
12159            </td>
12160            <td class="entry_type">
12161                <span class="entry_type_name">int32</span>
12162                <span class="entry_type_container">x</span>
12163
12164                <span class="entry_type_array">
12165                  2
12166                </span>
12167              <span class="entry_type_visibility"> [public]</span>
12168                <div class="entry_type_notes">Range of supported sensitivities</div>
12169
12170
12171            </td> <!-- entry_type -->
12172
12173            <td class="entry_description">
12174              <p>Range of valid sensitivities</p>
12175            </td>
12176
12177            <td class="entry_units">
12178            </td>
12179
12180            <td class="entry_range">
12181              <p>Min &lt;= 100,<wbr/> Max &gt;= 1600</p>
12182            </td>
12183
12184            <td class="entry_tags">
12185              <ul class="entry_tags">
12186                  <li><a href="#tag_BC">BC</a></li>
12187                  <li><a href="#tag_V1">V1</a></li>
12188              </ul>
12189            </td>
12190
12191          </tr>
12192
12193
12194          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12195           <!-- end of entry -->
12196        
12197                
12198          <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
12199            <td class="entry_name" rowspan="1">
12200              android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement
12201            </td>
12202            <td class="entry_type">
12203                <span class="entry_type_name entry_type_name_enum">byte</span>
12204
12205              <span class="entry_type_visibility"> [public]</span>
12206
12207                <ul class="entry_type_enum">
12208                  <li>
12209                    <span class="entry_type_enum_name">RGGB</span>
12210                  </li>
12211                  <li>
12212                    <span class="entry_type_enum_name">GRBG</span>
12213                  </li>
12214                  <li>
12215                    <span class="entry_type_enum_name">GBRG</span>
12216                  </li>
12217                  <li>
12218                    <span class="entry_type_enum_name">BGGR</span>
12219                  </li>
12220                  <li>
12221                    <span class="entry_type_enum_name">RGB</span>
12222                    <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
12223values for each pixel,<wbr/> instead of just 1 16-bit value
12224per pixel.<wbr/></p></span>
12225                  </li>
12226                </ul>
12227
12228            </td> <!-- entry_type -->
12229
12230            <td class="entry_description">
12231              <p>Arrangement of color filters on sensor;
12232represents the colors in the top-left 2x2 section of
12233the sensor,<wbr/> in reading order</p>
12234            </td>
12235
12236            <td class="entry_units">
12237            </td>
12238
12239            <td class="entry_range">
12240            </td>
12241
12242            <td class="entry_tags">
12243              <ul class="entry_tags">
12244                  <li><a href="#tag_DNG">DNG</a></li>
12245              </ul>
12246            </td>
12247
12248          </tr>
12249
12250
12251          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12252           <!-- end of entry -->
12253        
12254                
12255          <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
12256            <td class="entry_name" rowspan="3">
12257              android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range
12258            </td>
12259            <td class="entry_type">
12260                <span class="entry_type_name">int64</span>
12261                <span class="entry_type_container">x</span>
12262
12263                <span class="entry_type_array">
12264                  2
12265                </span>
12266              <span class="entry_type_visibility"> [public]</span>
12267                <div class="entry_type_notes">nanoseconds</div>
12268
12269
12270            </td> <!-- entry_type -->
12271
12272            <td class="entry_description">
12273              <p>Range of valid exposure
12274times used by <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>.<wbr/></p>
12275            </td>
12276
12277            <td class="entry_units">
12278            </td>
12279
12280            <td class="entry_range">
12281              <p>Min &lt;= 100e3 (100 us).<wbr/> For FULL capability devices
12282(<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/> Max SHOULD be
12283&gt;= 1e9 (1sec),<wbr/> MUST be &gt;= 100e6 (100ms)</p>
12284            </td>
12285
12286            <td class="entry_tags">
12287              <ul class="entry_tags">
12288                  <li><a href="#tag_V1">V1</a></li>
12289              </ul>
12290            </td>
12291
12292          </tr>
12293
12294          <tr class="entries_header">
12295            <th class="th_details" colspan="5">HAL Implementation Details</th>
12296          </tr>
12297          <tr class="entry_cont">
12298            <td class="entry_details" colspan="5">
12299              <p>For FULL capability devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/>
12300The maximum of the range SHOULD be at least
123011 second (1e9),<wbr/> MUST be at least 100ms.<wbr/></p>
12302            </td>
12303          </tr>
12304
12305          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12306           <!-- end of entry -->
12307        
12308                
12309          <tr class="entry" id="static_android.sensor.info.maxFrameDuration">
12310            <td class="entry_name" rowspan="5">
12311              android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration
12312            </td>
12313            <td class="entry_type">
12314                <span class="entry_type_name">int64</span>
12315
12316              <span class="entry_type_visibility"> [public]</span>
12317
12318
12319            </td> <!-- entry_type -->
12320
12321            <td class="entry_description">
12322              <p>Maximum possible frame duration (minimum frame
12323rate).<wbr/></p>
12324            </td>
12325
12326            <td class="entry_units">
12327              nanoseconds
12328            </td>
12329
12330            <td class="entry_range">
12331              <p>For FULL capability devices
12332(<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/> Max SHOULD be
12333&gt;= 1e9 (1sec),<wbr/> MUST be &gt;= 100e6 (100ms)</p>
12334            </td>
12335
12336            <td class="entry_tags">
12337              <ul class="entry_tags">
12338                  <li><a href="#tag_BC">BC</a></li>
12339                  <li><a href="#tag_V1">V1</a></li>
12340              </ul>
12341            </td>
12342
12343          </tr>
12344          <tr class="entries_header">
12345            <th class="th_details" colspan="5">Details</th>
12346          </tr>
12347          <tr class="entry_cont">
12348            <td class="entry_details" colspan="5">
12349              <p>The largest possible <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>
12350that will be accepted by the camera device.<wbr/> Attempting to use
12351frame durations beyond the maximum will result in the frame duration
12352being clipped to the maximum.<wbr/> See that control
12353for a full definition of frame durations.<wbr/></p>
12354<p>Refer to
12355<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>,<wbr/>
12356<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/> and
12357<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a> for the minimum
12358frame duration values.<wbr/></p>
12359            </td>
12360          </tr>
12361
12362          <tr class="entries_header">
12363            <th class="th_details" colspan="5">HAL Implementation Details</th>
12364          </tr>
12365          <tr class="entry_cont">
12366            <td class="entry_details" colspan="5">
12367              <p>For FULL capability devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/>
12368The maximum of the range SHOULD be at least
123691 second (1e9),<wbr/> MUST be at least 100ms (100e6).<wbr/></p>
12370<p><a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a> must be greater or
12371equal to the <a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a> max
12372value (since exposure time overrides frame duration).<wbr/></p>
12373<p>Available minimum frame durations for JPEG must be no greater
12374than that of the YUV_<wbr/>420_<wbr/>888/<wbr/>IMPLEMENTATION_<wbr/>DEFINED
12375minimum frame durations (for that respective size).<wbr/></p>
12376<p>Since JPEG processing is considered offline and can take longer than
12377a single uncompressed capture,<wbr/> refer to
12378<a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a>
12379for details about encoding this scenario.<wbr/></p>
12380            </td>
12381          </tr>
12382
12383          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12384           <!-- end of entry -->
12385        
12386                
12387          <tr class="entry" id="static_android.sensor.info.physicalSize">
12388            <td class="entry_name" rowspan="3">
12389              android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size
12390            </td>
12391            <td class="entry_type">
12392                <span class="entry_type_name">float</span>
12393                <span class="entry_type_container">x</span>
12394
12395                <span class="entry_type_array">
12396                  2
12397                </span>
12398              <span class="entry_type_visibility"> [public]</span>
12399                <div class="entry_type_notes">width x height in millimeters</div>
12400
12401
12402            </td> <!-- entry_type -->
12403
12404            <td class="entry_description">
12405              <p>The physical dimensions of the full pixel
12406array</p>
12407            </td>
12408
12409            <td class="entry_units">
12410            </td>
12411
12412            <td class="entry_range">
12413            </td>
12414
12415            <td class="entry_tags">
12416              <ul class="entry_tags">
12417                  <li><a href="#tag_V1">V1</a></li>
12418                  <li><a href="#tag_BC">BC</a></li>
12419              </ul>
12420            </td>
12421
12422          </tr>
12423          <tr class="entries_header">
12424            <th class="th_details" colspan="5">Details</th>
12425          </tr>
12426          <tr class="entry_cont">
12427            <td class="entry_details" colspan="5">
12428              <p>Needed for FOV calculation for old API</p>
12429            </td>
12430          </tr>
12431
12432
12433          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12434           <!-- end of entry -->
12435        
12436                
12437          <tr class="entry" id="static_android.sensor.info.pixelArraySize">
12438            <td class="entry_name" rowspan="3">
12439              android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size
12440            </td>
12441            <td class="entry_type">
12442                <span class="entry_type_name">int32</span>
12443                <span class="entry_type_container">x</span>
12444
12445                <span class="entry_type_array">
12446                  2
12447                </span>
12448              <span class="entry_type_visibility"> [public as size]</span>
12449
12450
12451            </td> <!-- entry_type -->
12452
12453            <td class="entry_description">
12454              <p>Dimensions of full pixel array,<wbr/> possibly
12455including black calibration pixels.<wbr/></p>
12456            </td>
12457
12458            <td class="entry_units">
12459            </td>
12460
12461            <td class="entry_range">
12462            </td>
12463
12464            <td class="entry_tags">
12465              <ul class="entry_tags">
12466                  <li><a href="#tag_DNG">DNG</a></li>
12467                  <li><a href="#tag_BC">BC</a></li>
12468              </ul>
12469            </td>
12470
12471          </tr>
12472          <tr class="entries_header">
12473            <th class="th_details" colspan="5">Details</th>
12474          </tr>
12475          <tr class="entry_cont">
12476            <td class="entry_details" colspan="5">
12477              <p>Maximum output resolution for raw format must
12478match this in
12479<a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a>.<wbr/></p>
12480            </td>
12481          </tr>
12482
12483
12484          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12485           <!-- end of entry -->
12486        
12487                
12488          <tr class="entry" id="static_android.sensor.info.whiteLevel">
12489            <td class="entry_name" rowspan="5">
12490              android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level
12491            </td>
12492            <td class="entry_type">
12493                <span class="entry_type_name">int32</span>
12494
12495              <span class="entry_type_visibility"> [public]</span>
12496
12497
12498            </td> <!-- entry_type -->
12499
12500            <td class="entry_description">
12501              <p>Maximum raw value output by sensor.<wbr/></p>
12502            </td>
12503
12504            <td class="entry_units">
12505            </td>
12506
12507            <td class="entry_range">
12508              <p>&gt; 255 (8-bit output)</p>
12509            </td>
12510
12511            <td class="entry_tags">
12512              <ul class="entry_tags">
12513                  <li><a href="#tag_DNG">DNG</a></li>
12514              </ul>
12515            </td>
12516
12517          </tr>
12518          <tr class="entries_header">
12519            <th class="th_details" colspan="5">Details</th>
12520          </tr>
12521          <tr class="entry_cont">
12522            <td class="entry_details" colspan="5">
12523              <p>This specifies the fully-saturated encoding level for the raw
12524sample values from the sensor.<wbr/>  This is typically caused by the
12525sensor becoming highly non-linear or clipping.<wbr/> The minimum for
12526each channel is specified by the offset in the
12527<a href="#static_android.sensor.blackLevelPattern">android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern</a> tag.<wbr/></p>
12528<p>The white level is typically determined either by sensor bit depth
12529(8-14 bits is expected),<wbr/> or by the point where the sensor response
12530becomes too non-linear to be useful.<wbr/>  The default value for this is
12531maximum representable value for a 16-bit raw sample (2^16 - 1).<wbr/></p>
12532            </td>
12533          </tr>
12534
12535          <tr class="entries_header">
12536            <th class="th_details" colspan="5">HAL Implementation Details</th>
12537          </tr>
12538          <tr class="entry_cont">
12539            <td class="entry_details" colspan="5">
12540              <p>The full bit depth of the sensor must be available in the raw data,<wbr/>
12541so the value for linear sensors should not be significantly lower
12542than maximum raw value supported,<wbr/> i.<wbr/>e.<wbr/> 2^(sensor bits per pixel).<wbr/></p>
12543            </td>
12544          </tr>
12545
12546          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12547           <!-- end of entry -->
12548        
12549        
12550        
12551
12552                
12553          <tr class="entry" id="static_android.sensor.baseGainFactor">
12554            <td class="entry_name" rowspan="1">
12555              android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor
12556            </td>
12557            <td class="entry_type">
12558                <span class="entry_type_name">rational</span>
12559
12560              <span class="entry_type_visibility"> [public]</span>
12561
12562
12563            </td> <!-- entry_type -->
12564
12565            <td class="entry_description">
12566              <p>Gain factor from electrons to raw units when
12567ISO=100</p>
12568            </td>
12569
12570            <td class="entry_units">
12571            </td>
12572
12573            <td class="entry_range">
12574            </td>
12575
12576            <td class="entry_tags">
12577              <ul class="entry_tags">
12578                  <li><a href="#tag_V1">V1</a></li>
12579                  <li><a href="#tag_FULL">FULL</a></li>
12580              </ul>
12581            </td>
12582
12583          </tr>
12584
12585
12586          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12587           <!-- end of entry -->
12588        
12589                
12590          <tr class="entry" id="static_android.sensor.blackLevelPattern">
12591            <td class="entry_name" rowspan="3">
12592              android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern
12593            </td>
12594            <td class="entry_type">
12595                <span class="entry_type_name">int32</span>
12596                <span class="entry_type_container">x</span>
12597
12598                <span class="entry_type_array">
12599                  4
12600                </span>
12601              <span class="entry_type_visibility"> [public]</span>
12602                <div class="entry_type_notes">2x2 raw count block</div>
12603
12604
12605            </td> <!-- entry_type -->
12606
12607            <td class="entry_description">
12608              <p>A fixed black level offset for each of the color filter arrangement
12609(CFA) mosaic channels.<wbr/></p>
12610            </td>
12611
12612            <td class="entry_units">
12613            </td>
12614
12615            <td class="entry_range">
12616              <p>&gt;= 0 for each.<wbr/></p>
12617            </td>
12618
12619            <td class="entry_tags">
12620              <ul class="entry_tags">
12621                  <li><a href="#tag_DNG">DNG</a></li>
12622              </ul>
12623            </td>
12624
12625          </tr>
12626          <tr class="entries_header">
12627            <th class="th_details" colspan="5">Details</th>
12628          </tr>
12629          <tr class="entry_cont">
12630            <td class="entry_details" colspan="5">
12631              <p>This tag specifies the zero light value for each of the CFA mosaic
12632channels in the camera sensor.<wbr/>  The maximal value output by the
12633sensor is represented by the value in <a href="#static_android.sensor.info.whiteLevel">android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level</a>.<wbr/></p>
12634<p>The values are given in row-column scan order,<wbr/> with the first value
12635corresponding to the element of the CFA in row=0,<wbr/> column=0.<wbr/></p>
12636            </td>
12637          </tr>
12638
12639
12640          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12641           <!-- end of entry -->
12642        
12643                
12644          <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
12645            <td class="entry_name" rowspan="3">
12646              android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity
12647            </td>
12648            <td class="entry_type">
12649                <span class="entry_type_name">int32</span>
12650
12651              <span class="entry_type_visibility"> [public]</span>
12652
12653
12654            </td> <!-- entry_type -->
12655
12656            <td class="entry_description">
12657              <p>Maximum sensitivity that is implemented
12658purely through analog gain.<wbr/></p>
12659            </td>
12660
12661            <td class="entry_units">
12662            </td>
12663
12664            <td class="entry_range">
12665            </td>
12666
12667            <td class="entry_tags">
12668              <ul class="entry_tags">
12669                  <li><a href="#tag_V1">V1</a></li>
12670                  <li><a href="#tag_FULL">FULL</a></li>
12671              </ul>
12672            </td>
12673
12674          </tr>
12675          <tr class="entries_header">
12676            <th class="th_details" colspan="5">Details</th>
12677          </tr>
12678          <tr class="entry_cont">
12679            <td class="entry_details" colspan="5">
12680              <p>For <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> values less than or
12681equal to this,<wbr/> all applied gain must be analog.<wbr/> For
12682values above this,<wbr/> the gain applied can be a mix of analog and
12683digital.<wbr/></p>
12684            </td>
12685          </tr>
12686
12687
12688          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12689           <!-- end of entry -->
12690        
12691                
12692          <tr class="entry" id="static_android.sensor.orientation">
12693            <td class="entry_name" rowspan="1">
12694              android.<wbr/>sensor.<wbr/>orientation
12695            </td>
12696            <td class="entry_type">
12697                <span class="entry_type_name">int32</span>
12698
12699              <span class="entry_type_visibility"> [public]</span>
12700
12701
12702            </td> <!-- entry_type -->
12703
12704            <td class="entry_description">
12705              <p>Clockwise angle through which the output
12706image needs to be rotated to be upright on the device
12707screen in its native orientation.<wbr/> Also defines the
12708direction of rolling shutter readout,<wbr/> which is from top
12709to bottom in the sensor's coordinate system</p>
12710            </td>
12711
12712            <td class="entry_units">
12713              degrees clockwise rotation,<wbr/> only multiples of
12714          90
12715            </td>
12716
12717            <td class="entry_range">
12718              <p>0,<wbr/>90,<wbr/>180,<wbr/>270</p>
12719            </td>
12720
12721            <td class="entry_tags">
12722              <ul class="entry_tags">
12723                  <li><a href="#tag_BC">BC</a></li>
12724              </ul>
12725            </td>
12726
12727          </tr>
12728
12729
12730          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12731           <!-- end of entry -->
12732        
12733                
12734          <tr class="entry" id="static_android.sensor.profileHueSatMapDimensions">
12735            <td class="entry_name" rowspan="3">
12736              android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map<wbr/>Dimensions
12737            </td>
12738            <td class="entry_type">
12739                <span class="entry_type_name">int32</span>
12740                <span class="entry_type_container">x</span>
12741
12742                <span class="entry_type_array">
12743                  3
12744                </span>
12745              <span class="entry_type_visibility"> [public]</span>
12746                <div class="entry_type_notes">Number of samples for hue,<wbr/> saturation,<wbr/> and value</div>
12747
12748
12749            </td> <!-- entry_type -->
12750
12751            <td class="entry_description">
12752              <p>The number of input samples for each dimension of
12753<a href="#dynamic_android.sensor.profileHueSatMap">android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map</a>.<wbr/></p>
12754            </td>
12755
12756            <td class="entry_units">
12757            </td>
12758
12759            <td class="entry_range">
12760              <p>Hue &gt;= 1,<wbr/>
12761Saturation &gt;= 2,<wbr/>
12762Value &gt;= 1</p>
12763            </td>
12764
12765            <td class="entry_tags">
12766              <ul class="entry_tags">
12767                  <li><a href="#tag_DNG">DNG</a></li>
12768              </ul>
12769            </td>
12770
12771          </tr>
12772          <tr class="entries_header">
12773            <th class="th_details" colspan="5">Details</th>
12774          </tr>
12775          <tr class="entry_cont">
12776            <td class="entry_details" colspan="5">
12777              <p>The number of input samples for the hue,<wbr/> saturation,<wbr/> and value
12778dimension of <a href="#dynamic_android.sensor.profileHueSatMap">android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map</a>.<wbr/> The order of the
12779dimensions given is hue,<wbr/> saturation,<wbr/> value; where hue is the 0th
12780element.<wbr/></p>
12781            </td>
12782          </tr>
12783
12784
12785          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12786           <!-- end of entry -->
12787        
12788                
12789          <tr class="entry" id="static_android.sensor.availableTestPatternModes">
12790            <td class="entry_name" rowspan="1">
12791              android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes
12792            </td>
12793            <td class="entry_type">
12794                <span class="entry_type_name">int32</span>
12795                <span class="entry_type_container">x</span>
12796
12797                <span class="entry_type_array">
12798                  n
12799                </span>
12800              <span class="entry_type_visibility"> [public]</span>
12801                <div class="entry_type_notes">list of enums</div>
12802
12803
12804            </td> <!-- entry_type -->
12805
12806            <td class="entry_description">
12807              <p>Optional.<wbr/> Defaults to [OFF].<wbr/> Lists the supported test
12808pattern modes for <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a>.<wbr/></p>
12809            </td>
12810
12811            <td class="entry_units">
12812            </td>
12813
12814            <td class="entry_range">
12815              <p>Must include OFF.<wbr/> All custom modes must be &gt;= CUSTOM1</p>
12816            </td>
12817
12818            <td class="entry_tags">
12819            </td>
12820
12821          </tr>
12822
12823
12824          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12825           <!-- end of entry -->
12826        
12827        
12828
12829      <!-- end of kind -->
12830      </tbody>
12831      <tr><td colspan="6" class="kind">dynamic</td></tr>
12832
12833      <thead class="entries_header">
12834        <tr>
12835          <th class="th_name">Property Name</th>
12836          <th class="th_type">Type</th>
12837          <th class="th_description">Description</th>
12838          <th class="th_units">Units</th>
12839          <th class="th_range">Range</th>
12840          <th class="th_tags">Tags</th>
12841        </tr>
12842      </thead>
12843
12844      <tbody>
12845
12846        
12847
12848        
12849
12850        
12851
12852        
12853
12854                
12855          <tr class="entry" id="dynamic_android.sensor.exposureTime">
12856            <td class="entry_name" rowspan="3">
12857              android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
12858            </td>
12859            <td class="entry_type">
12860                <span class="entry_type_name">int64</span>
12861
12862              <span class="entry_type_visibility"> [public]</span>
12863
12864
12865            </td> <!-- entry_type -->
12866
12867            <td class="entry_description">
12868              <p>Duration each pixel is exposed to
12869light.<wbr/></p>
12870            </td>
12871
12872            <td class="entry_units">
12873              nanoseconds
12874            </td>
12875
12876            <td class="entry_range">
12877              <p><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></p>
12878            </td>
12879
12880            <td class="entry_tags">
12881              <ul class="entry_tags">
12882                  <li><a href="#tag_V1">V1</a></li>
12883              </ul>
12884            </td>
12885
12886          </tr>
12887          <tr class="entries_header">
12888            <th class="th_details" colspan="5">Details</th>
12889          </tr>
12890          <tr class="entry_cont">
12891            <td class="entry_details" colspan="5">
12892              <p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
12893duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
12894            </td>
12895          </tr>
12896
12897
12898          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12899           <!-- end of entry -->
12900        
12901                
12902          <tr class="entry" id="dynamic_android.sensor.frameDuration">
12903            <td class="entry_name" rowspan="3">
12904              android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
12905            </td>
12906            <td class="entry_type">
12907                <span class="entry_type_name">int64</span>
12908
12909              <span class="entry_type_visibility"> [public]</span>
12910
12911
12912            </td> <!-- entry_type -->
12913
12914            <td class="entry_description">
12915              <p>Duration from start of frame exposure to
12916start of next frame exposure.<wbr/></p>
12917            </td>
12918
12919            <td class="entry_units">
12920              nanoseconds
12921            </td>
12922
12923            <td class="entry_range">
12924              <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
12925<a href="#static_android.scaler.availableMinFrameDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Min<wbr/>Frame<wbr/>Durations</a>.<wbr/> The duration
12926is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
12927            </td>
12928
12929            <td class="entry_tags">
12930              <ul class="entry_tags">
12931                  <li><a href="#tag_V1">V1</a></li>
12932                  <li><a href="#tag_BC">BC</a></li>
12933              </ul>
12934            </td>
12935
12936          </tr>
12937          <tr class="entries_header">
12938            <th class="th_details" colspan="5">Details</th>
12939          </tr>
12940          <tr class="entry_cont">
12941            <td class="entry_details" colspan="5">
12942              <p>The maximum frame rate that can be supported by a camera subsystem is
12943a function of many factors:</p>
12944<ul>
12945<li>Requested resolutions of output image streams</li>
12946<li>Availability of binning /<wbr/> skipping modes on the imager</li>
12947<li>The bandwidth of the imager interface</li>
12948<li>The bandwidth of the various ISP processing blocks</li>
12949</ul>
12950<p>Since these factors can vary greatly between different ISPs and
12951sensors,<wbr/> the camera abstraction tries to represent the bandwidth
12952restrictions with as simple a model as possible.<wbr/></p>
12953<p>The model presented has the following characteristics:</p>
12954<ul>
12955<li>The image sensor is always configured to output the smallest
12956resolution possible given the application's requested output stream
12957sizes.<wbr/>  The smallest resolution is defined as being at least as large
12958as the largest requested output stream size; the camera pipeline must
12959never digitally upsample sensor data when the crop region covers the
12960whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
12961resolutions are configured,<wbr/> the sensor can provide a higher frame
12962rate.<wbr/></li>
12963<li>Since any request may use any or all the currently configured
12964output streams,<wbr/> the sensor and ISP must be configured to support
12965scaling a single capture to all the streams at the same time.<wbr/>  This
12966means the camera pipeline must be ready to produce the largest
12967requested output size without any delay.<wbr/>  Therefore,<wbr/> the overall
12968frame rate of a given configured stream set is governed only by the
12969largest requested stream resolution.<wbr/></li>
12970<li>Using more than one output stream in a request does not affect the
12971frame duration.<wbr/></li>
12972<li>Certain format-streams may need to do additional background processing
12973before data is consumed/<wbr/>produced by that stream.<wbr/> These processors
12974can run concurrently to the rest of the camera pipeline,<wbr/> but
12975cannot process more than 1 capture at a time.<wbr/></li>
12976</ul>
12977<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
12978is provided via the <a href="#static_android.scaler.availableMinFrameDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Min<wbr/>Frame<wbr/>Durations</a> field.<wbr/>
12979These are used to determine the maximum frame rate /<wbr/> minimum frame
12980duration that is possible for a given stream configuration.<wbr/></p>
12981<p>Specifically,<wbr/> the application can use the following rules to
12982determine the minimum frame duration it can request from the camera
12983device:</p>
12984<ol>
12985<li>Let the set of currently configured input/<wbr/>output streams
12986be called <code>S</code>.<wbr/></li>
12987<li>Find the minimum frame durations for each stream in <code>S</code>,<wbr/> by
12988looking it up in <a href="#static_android.scaler.availableMinFrameDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Min<wbr/>Frame<wbr/>Durations</a> (with
12989its respective size/<wbr/>format).<wbr/> Let this set of frame durations be called
12990<code>F</code>.<wbr/></li>
12991<li>For any given request <code>R</code>,<wbr/> the minimum frame duration allowed
12992for <code>R</code> is the maximum out of all values in <code>F</code>.<wbr/> Let the streams
12993used in <code>R</code> be called <code>S_<wbr/>r</code>.<wbr/></li>
12994</ol>
12995<p>If none of the streams in <code>S_<wbr/>r</code> have a stall time (listed in
12996<a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a>),<wbr/> then the frame duration in
12997<code>F</code> determines the steady state frame rate that the application will
12998get if it uses <code>R</code> as a repeating request.<wbr/> Let this special kind
12999of request be called <code>Rsimple</code>.<wbr/></p>
13000<p>A repeating request <code>Rsimple</code> can be <em>occasionally</em> interleaved
13001by a single capture of a new request <code>Rstall</code> (which has at least
13002one in-use stream with a non-0 stall time) and if <code>Rstall</code> has the
13003same minimum frame duration this will not cause a frame rate loss
13004if all buffers from the previous <code>Rstall</code> have already been
13005delivered.<wbr/></p>
13006<p>For more details about stalling,<wbr/> see
13007<a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a>.<wbr/></p>
13008            </td>
13009          </tr>
13010
13011
13012          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13013           <!-- end of entry -->
13014        
13015                
13016          <tr class="entry" id="dynamic_android.sensor.sensitivity">
13017            <td class="entry_name" rowspan="3">
13018              android.<wbr/>sensor.<wbr/>sensitivity
13019            </td>
13020            <td class="entry_type">
13021                <span class="entry_type_name">int32</span>
13022
13023              <span class="entry_type_visibility"> [public]</span>
13024
13025
13026            </td> <!-- entry_type -->
13027
13028            <td class="entry_description">
13029              <p>Gain applied to image data.<wbr/> Must be
13030implemented through analog gain only if set to values
13031below 'maximum analog sensitivity'.<wbr/></p>
13032<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
13033gain to the nearest possible value (rather than gain more).<wbr/></p>
13034            </td>
13035
13036            <td class="entry_units">
13037              ISO arithmetic units
13038            </td>
13039
13040            <td class="entry_range">
13041              <p><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></p>
13042            </td>
13043
13044            <td class="entry_tags">
13045              <ul class="entry_tags">
13046                  <li><a href="#tag_V1">V1</a></li>
13047              </ul>
13048            </td>
13049
13050          </tr>
13051          <tr class="entries_header">
13052            <th class="th_details" colspan="5">Details</th>
13053          </tr>
13054          <tr class="entry_cont">
13055            <td class="entry_details" colspan="5">
13056              <p>ISO 12232:2006 REI method</p>
13057            </td>
13058          </tr>
13059
13060
13061          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13062           <!-- end of entry -->
13063        
13064                
13065          <tr class="entry" id="dynamic_android.sensor.timestamp">
13066            <td class="entry_name" rowspan="3">
13067              android.<wbr/>sensor.<wbr/>timestamp
13068            </td>
13069            <td class="entry_type">
13070                <span class="entry_type_name">int64</span>
13071
13072              <span class="entry_type_visibility"> [public]</span>
13073
13074
13075            </td> <!-- entry_type -->
13076
13077            <td class="entry_description">
13078              <p>Time at start of exposure of first
13079row</p>
13080            </td>
13081
13082            <td class="entry_units">
13083              nanoseconds
13084            </td>
13085
13086            <td class="entry_range">
13087              <p>&gt; 0</p>
13088            </td>
13089
13090            <td class="entry_tags">
13091              <ul class="entry_tags">
13092                  <li><a href="#tag_BC">BC</a></li>
13093              </ul>
13094            </td>
13095
13096          </tr>
13097          <tr class="entries_header">
13098            <th class="th_details" colspan="5">Details</th>
13099          </tr>
13100          <tr class="entry_cont">
13101            <td class="entry_details" colspan="5">
13102              <p>Monotonic,<wbr/> should be synced to other timestamps in
13103system</p>
13104            </td>
13105          </tr>
13106
13107
13108          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13109           <!-- end of entry -->
13110        
13111                
13112          <tr class="entry" id="dynamic_android.sensor.temperature">
13113            <td class="entry_name" rowspan="1">
13114              android.<wbr/>sensor.<wbr/>temperature
13115            </td>
13116            <td class="entry_type">
13117                <span class="entry_type_name">float</span>
13118
13119              <span class="entry_type_visibility"> [public]</span>
13120
13121
13122            </td> <!-- entry_type -->
13123
13124            <td class="entry_description">
13125              <p>The temperature of the sensor,<wbr/> sampled at the time
13126exposure began for this frame.<wbr/></p>
13127<p>The thermal diode being queried should be inside the sensor PCB,<wbr/> or
13128somewhere close to it.<wbr/></p>
13129            </td>
13130
13131            <td class="entry_units">
13132              celsius
13133            </td>
13134
13135            <td class="entry_range">
13136              <p>Optional.<wbr/> This value is missing if no temperature is available.<wbr/></p>
13137            </td>
13138
13139            <td class="entry_tags">
13140              <ul class="entry_tags">
13141                  <li><a href="#tag_FULL">FULL</a></li>
13142              </ul>
13143            </td>
13144
13145          </tr>
13146
13147
13148          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13149           <!-- end of entry -->
13150        
13151                
13152          <tr class="entry" id="dynamic_android.sensor.referenceIlluminant">
13153            <td class="entry_name" rowspan="3">
13154              android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant
13155            </td>
13156            <td class="entry_type">
13157                <span class="entry_type_name entry_type_name_enum">byte</span>
13158
13159              <span class="entry_type_visibility"> [public]</span>
13160
13161                <ul class="entry_type_enum">
13162                  <li>
13163                    <span class="entry_type_enum_name">DAYLIGHT</span>
13164                    <span class="entry_type_enum_value">1</span>
13165                  </li>
13166                  <li>
13167                    <span class="entry_type_enum_name">FLUORESCENT</span>
13168                    <span class="entry_type_enum_value">2</span>
13169                  </li>
13170                  <li>
13171                    <span class="entry_type_enum_name">TUNGSTEN</span>
13172                    <span class="entry_type_enum_value">3</span>
13173                    <span class="entry_type_enum_notes"><p>Incandescent light</p></span>
13174                  </li>
13175                  <li>
13176                    <span class="entry_type_enum_name">FLASH</span>
13177                    <span class="entry_type_enum_value">4</span>
13178                  </li>
13179                  <li>
13180                    <span class="entry_type_enum_name">FINE_WEATHER</span>
13181                    <span class="entry_type_enum_value">9</span>
13182                  </li>
13183                  <li>
13184                    <span class="entry_type_enum_name">CLOUDY_WEATHER</span>
13185                    <span class="entry_type_enum_value">10</span>
13186                  </li>
13187                  <li>
13188                    <span class="entry_type_enum_name">SHADE</span>
13189                    <span class="entry_type_enum_value">11</span>
13190                  </li>
13191                  <li>
13192                    <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span>
13193                    <span class="entry_type_enum_value">12</span>
13194                    <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
13195                  </li>
13196                  <li>
13197                    <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span>
13198                    <span class="entry_type_enum_value">13</span>
13199                    <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
13200                  </li>
13201                  <li>
13202                    <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span>
13203                    <span class="entry_type_enum_value">14</span>
13204                    <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
13205                  </li>
13206                  <li>
13207                    <span class="entry_type_enum_name">WHITE_FLUORESCENT</span>
13208                    <span class="entry_type_enum_value">15</span>
13209                    <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
13210                  </li>
13211                  <li>
13212                    <span class="entry_type_enum_name">STANDARD_A</span>
13213                    <span class="entry_type_enum_value">17</span>
13214                  </li>
13215                  <li>
13216                    <span class="entry_type_enum_name">STANDARD_B</span>
13217                    <span class="entry_type_enum_value">18</span>
13218                  </li>
13219                  <li>
13220                    <span class="entry_type_enum_name">STANDARD_C</span>
13221                    <span class="entry_type_enum_value">19</span>
13222                  </li>
13223                  <li>
13224                    <span class="entry_type_enum_name">D55</span>
13225                    <span class="entry_type_enum_value">20</span>
13226                  </li>
13227                  <li>
13228                    <span class="entry_type_enum_name">D65</span>
13229                    <span class="entry_type_enum_value">21</span>
13230                  </li>
13231                  <li>
13232                    <span class="entry_type_enum_name">D75</span>
13233                    <span class="entry_type_enum_value">22</span>
13234                  </li>
13235                  <li>
13236                    <span class="entry_type_enum_name">D50</span>
13237                    <span class="entry_type_enum_value">23</span>
13238                  </li>
13239                  <li>
13240                    <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span>
13241                    <span class="entry_type_enum_value">24</span>
13242                  </li>
13243                </ul>
13244
13245            </td> <!-- entry_type -->
13246
13247            <td class="entry_description">
13248              <p>A reference illumination source roughly matching the current scene
13249illumination,<wbr/> which is used to describe the sensor color space
13250transformations.<wbr/></p>
13251            </td>
13252
13253            <td class="entry_units">
13254            </td>
13255
13256            <td class="entry_range">
13257            </td>
13258
13259            <td class="entry_tags">
13260              <ul class="entry_tags">
13261                  <li><a href="#tag_DNG">DNG</a></li>
13262                  <li><a href="#tag_EXIF">EXIF</a></li>
13263              </ul>
13264            </td>
13265
13266          </tr>
13267          <tr class="entries_header">
13268            <th class="th_details" colspan="5">Details</th>
13269          </tr>
13270          <tr class="entry_cont">
13271            <td class="entry_details" colspan="5">
13272              <p>The values in this tag correspond to the values defined for the
13273EXIF LightSource tag.<wbr/> These illuminants are standard light sources
13274that are often used for calibrating camera devices.<wbr/></p>
13275            </td>
13276          </tr>
13277
13278
13279          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13280           <!-- end of entry -->
13281        
13282                
13283          <tr class="entry" id="dynamic_android.sensor.calibrationTransform">
13284            <td class="entry_name" rowspan="3">
13285              android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform
13286            </td>
13287            <td class="entry_type">
13288                <span class="entry_type_name">rational</span>
13289                <span class="entry_type_container">x</span>
13290
13291                <span class="entry_type_array">
13292                  3 x 3
13293                </span>
13294              <span class="entry_type_visibility"> [public]</span>
13295                <div class="entry_type_notes">3x3 matrix in row-major-order</div>
13296
13297
13298            </td> <!-- entry_type -->
13299
13300            <td class="entry_description">
13301              <p>A per-device calibration transform matrix to be applied after the
13302color space transform when rendering the raw image buffer.<wbr/></p>
13303            </td>
13304
13305            <td class="entry_units">
13306            </td>
13307
13308            <td class="entry_range">
13309            </td>
13310
13311            <td class="entry_tags">
13312              <ul class="entry_tags">
13313                  <li><a href="#tag_DNG">DNG</a></li>
13314              </ul>
13315            </td>
13316
13317          </tr>
13318          <tr class="entries_header">
13319            <th class="th_details" colspan="5">Details</th>
13320          </tr>
13321          <tr class="entry_cont">
13322            <td class="entry_details" colspan="5">
13323              <p>This matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
13324contains a per-device calibration transform that maps colors
13325from reference camera color space (i.<wbr/>e.<wbr/> the "golden module"
13326colorspace) into this camera device's linear native sensor color
13327space for the current scene illumination and white balance choice.<wbr/></p>
13328            </td>
13329          </tr>
13330
13331
13332          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13333           <!-- end of entry -->
13334        
13335                
13336          <tr class="entry" id="dynamic_android.sensor.colorTransform">
13337            <td class="entry_name" rowspan="3">
13338              android.<wbr/>sensor.<wbr/>color<wbr/>Transform
13339            </td>
13340            <td class="entry_type">
13341                <span class="entry_type_name">rational</span>
13342                <span class="entry_type_container">x</span>
13343
13344                <span class="entry_type_array">
13345                  3 x 3
13346                </span>
13347              <span class="entry_type_visibility"> [public]</span>
13348                <div class="entry_type_notes">3x3 matrix in row-major-order</div>
13349
13350
13351            </td> <!-- entry_type -->
13352
13353            <td class="entry_description">
13354              <p>A matrix that transforms color values from CIE XYZ color space to
13355reference camera color space when rendering the raw image buffer.<wbr/></p>
13356            </td>
13357
13358            <td class="entry_units">
13359            </td>
13360
13361            <td class="entry_range">
13362            </td>
13363
13364            <td class="entry_tags">
13365              <ul class="entry_tags">
13366                  <li><a href="#tag_DNG">DNG</a></li>
13367              </ul>
13368            </td>
13369
13370          </tr>
13371          <tr class="entries_header">
13372            <th class="th_details" colspan="5">Details</th>
13373          </tr>
13374          <tr class="entry_cont">
13375            <td class="entry_details" colspan="5">
13376              <p>This matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
13377contains a color transform matrix that maps colors from the CIE
13378XYZ color space to the reference camera raw color space (i.<wbr/>e.<wbr/> the
13379"golden module" colorspace) for the current scene illumination and
13380white balance choice.<wbr/></p>
13381            </td>
13382          </tr>
13383
13384
13385          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13386           <!-- end of entry -->
13387        
13388                
13389          <tr class="entry" id="dynamic_android.sensor.forwardMatrix">
13390            <td class="entry_name" rowspan="3">
13391              android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix
13392            </td>
13393            <td class="entry_type">
13394                <span class="entry_type_name">rational</span>
13395                <span class="entry_type_container">x</span>
13396
13397                <span class="entry_type_array">
13398                  3 x 3
13399                </span>
13400              <span class="entry_type_visibility"> [public]</span>
13401                <div class="entry_type_notes">3x3 matrix in row-major-order</div>
13402
13403
13404            </td> <!-- entry_type -->
13405
13406            <td class="entry_description">
13407              <p>A matrix that transforms white balanced camera colors to the CIE XYZ
13408colorspace with a D50 whitepoint.<wbr/></p>
13409            </td>
13410
13411            <td class="entry_units">
13412            </td>
13413
13414            <td class="entry_range">
13415            </td>
13416
13417            <td class="entry_tags">
13418              <ul class="entry_tags">
13419                  <li><a href="#tag_DNG">DNG</a></li>
13420              </ul>
13421            </td>
13422
13423          </tr>
13424          <tr class="entries_header">
13425            <th class="th_details" colspan="5">Details</th>
13426          </tr>
13427          <tr class="entry_cont">
13428            <td class="entry_details" colspan="5">
13429              <p>This matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and contains
13430a color transform matrix that maps a unit vector in the linear native
13431sensor color space to the D50 whitepoint in CIE XYZ color space.<wbr/></p>
13432            </td>
13433          </tr>
13434
13435
13436          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13437           <!-- end of entry -->
13438        
13439                
13440          <tr class="entry" id="dynamic_android.sensor.neutralColorPoint">
13441            <td class="entry_name" rowspan="3">
13442              android.<wbr/>sensor.<wbr/>neutral<wbr/>Color<wbr/>Point
13443            </td>
13444            <td class="entry_type">
13445                <span class="entry_type_name">rational</span>
13446                <span class="entry_type_container">x</span>
13447
13448                <span class="entry_type_array">
13449                  3
13450                </span>
13451              <span class="entry_type_visibility"> [public]</span>
13452
13453
13454            </td> <!-- entry_type -->
13455
13456            <td class="entry_description">
13457              <p>The estimated white balance at the time of capture.<wbr/></p>
13458            </td>
13459
13460            <td class="entry_units">
13461            </td>
13462
13463            <td class="entry_range">
13464            </td>
13465
13466            <td class="entry_tags">
13467              <ul class="entry_tags">
13468                  <li><a href="#tag_DNG">DNG</a></li>
13469              </ul>
13470            </td>
13471
13472          </tr>
13473          <tr class="entries_header">
13474            <th class="th_details" colspan="5">Details</th>
13475          </tr>
13476          <tr class="entry_cont">
13477            <td class="entry_details" colspan="5">
13478              <p>The estimated white balance encoded as the RGB values of the
13479perfectly neutral color point in the linear native sensor color space.<wbr/>
13480The order of the values is R,<wbr/> G,<wbr/> B; where R is in the lowest index.<wbr/></p>
13481            </td>
13482          </tr>
13483
13484
13485          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13486           <!-- end of entry -->
13487        
13488                
13489          <tr class="entry" id="dynamic_android.sensor.profileHueSatMap">
13490            <td class="entry_name" rowspan="3">
13491              android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map
13492            </td>
13493            <td class="entry_type">
13494                <span class="entry_type_name">float</span>
13495                <span class="entry_type_container">x</span>
13496
13497                <span class="entry_type_array">
13498                  hue_samples x saturation_samples x value_samples x 3
13499                </span>
13500              <span class="entry_type_visibility"> [public]</span>
13501                <div class="entry_type_notes">Mapping for hue,<wbr/> saturation,<wbr/> and value</div>
13502
13503
13504            </td> <!-- entry_type -->
13505
13506            <td class="entry_description">
13507              <p>A mapping containing a hue shift,<wbr/> saturation scale,<wbr/> and value scale
13508for each pixel.<wbr/></p>
13509            </td>
13510
13511            <td class="entry_units">
13512              
13513          Hue shift is given in degrees; saturation and value scale factors are
13514          unitless.<wbr/>
13515          
13516            </td>
13517
13518            <td class="entry_range">
13519            </td>
13520
13521            <td class="entry_tags">
13522              <ul class="entry_tags">
13523                  <li><a href="#tag_DNG">DNG</a></li>
13524              </ul>
13525            </td>
13526
13527          </tr>
13528          <tr class="entries_header">
13529            <th class="th_details" colspan="5">Details</th>
13530          </tr>
13531          <tr class="entry_cont">
13532            <td class="entry_details" colspan="5">
13533              <p>hue_<wbr/>samples,<wbr/> saturation_<wbr/>samples,<wbr/> and value_<wbr/>samples are given in
13534<a href="#static_android.sensor.profileHueSatMapDimensions">android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map<wbr/>Dimensions</a>.<wbr/></p>
13535<p>Each entry of this map contains three floats corresponding to the
13536hue shift,<wbr/> saturation scale,<wbr/> and value scale,<wbr/> respectively; where the
13537hue shift has the lowest index.<wbr/> The map entries are stored in the tag
13538in nested loop order,<wbr/> with the value divisions in the outer loop,<wbr/> the
13539hue divisions in the middle loop,<wbr/> and the saturation divisions in the
13540inner loop.<wbr/> All zero input saturation entries are required to have a
13541value scale factor of 1.<wbr/>0.<wbr/></p>
13542            </td>
13543          </tr>
13544
13545
13546          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13547           <!-- end of entry -->
13548        
13549                
13550          <tr class="entry" id="dynamic_android.sensor.profileToneCurve">
13551            <td class="entry_name" rowspan="3">
13552              android.<wbr/>sensor.<wbr/>profile<wbr/>Tone<wbr/>Curve
13553            </td>
13554            <td class="entry_type">
13555                <span class="entry_type_name">float</span>
13556                <span class="entry_type_container">x</span>
13557
13558                <span class="entry_type_array">
13559                  samples x 2
13560                </span>
13561              <span class="entry_type_visibility"> [public]</span>
13562                <div class="entry_type_notes">Samples defining a spline for a tone-mapping curve</div>
13563
13564
13565            </td> <!-- entry_type -->
13566
13567            <td class="entry_description">
13568              <p>A list of x,<wbr/>y samples defining a tone-mapping curve for gamma adjustment.<wbr/></p>
13569            </td>
13570
13571            <td class="entry_units">
13572            </td>
13573
13574            <td class="entry_range">
13575              <p>Each sample has an input range of <code>[0,<wbr/> 1]</code> and an output range of
13576<code>[0,<wbr/> 1]</code>.<wbr/>  The first sample is required to be <code>(0,<wbr/> 0)</code>,<wbr/> and the last
13577sample is required to be <code>(1,<wbr/> 1)</code>.<wbr/></p>
13578            </td>
13579
13580            <td class="entry_tags">
13581              <ul class="entry_tags">
13582                  <li><a href="#tag_DNG">DNG</a></li>
13583              </ul>
13584            </td>
13585
13586          </tr>
13587          <tr class="entries_header">
13588            <th class="th_details" colspan="5">Details</th>
13589          </tr>
13590          <tr class="entry_cont">
13591            <td class="entry_details" colspan="5">
13592              <p>This tag contains a default tone curve that can be applied while
13593processing the image as a starting point for user adjustments.<wbr/>
13594The curve is specified as a list of value pairs in linear gamma.<wbr/>
13595The curve is interpolated using a cubic spline.<wbr/></p>
13596            </td>
13597          </tr>
13598
13599
13600          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13601           <!-- end of entry -->
13602        
13603                
13604          <tr class="entry" id="dynamic_android.sensor.greenSplit">
13605            <td class="entry_name" rowspan="5">
13606              android.<wbr/>sensor.<wbr/>green<wbr/>Split
13607            </td>
13608            <td class="entry_type">
13609                <span class="entry_type_name">float</span>
13610
13611              <span class="entry_type_visibility"> [public]</span>
13612
13613
13614            </td> <!-- entry_type -->
13615
13616            <td class="entry_description">
13617              <p>The worst-case divergence between Bayer green channels.<wbr/></p>
13618            </td>
13619
13620            <td class="entry_units">
13621            </td>
13622
13623            <td class="entry_range">
13624              <p>&gt;= 0</p>
13625            </td>
13626
13627            <td class="entry_tags">
13628              <ul class="entry_tags">
13629                  <li><a href="#tag_DNG">DNG</a></li>
13630              </ul>
13631            </td>
13632
13633          </tr>
13634          <tr class="entries_header">
13635            <th class="th_details" colspan="5">Details</th>
13636          </tr>
13637          <tr class="entry_cont">
13638            <td class="entry_details" colspan="5">
13639              <p>This value is an estimate of the worst case split between the
13640Bayer green channels in the red and blue rows in the sensor color
13641filter array.<wbr/></p>
13642<p>The green split is calculated as follows:</p>
13643<ol>
13644<li>A 5x5 pixel (or larger) window W within the active sensor array is
13645chosen.<wbr/> The term 'pixel' here is taken to mean a group of 4 Bayer
13646mosaic channels (R,<wbr/> Gr,<wbr/> Gb,<wbr/> B).<wbr/>  The location and size of the window
13647chosen is implementation defined,<wbr/> and should be chosen to provide a
13648green split estimate that is both representative of the entire image
13649for this camera sensor,<wbr/> and can be calculated quickly.<wbr/></li>
13650<li>The arithmetic mean of the green channels from the red
13651rows (mean_<wbr/>Gr) within W is computed.<wbr/></li>
13652<li>The arithmetic mean of the green channels from the blue
13653rows (mean_<wbr/>Gb) within W is computed.<wbr/></li>
13654<li>The maximum ratio R of the two means is computed as follows:
13655<code>R = max((mean_<wbr/>Gr + 1)/<wbr/>(mean_<wbr/>Gb + 1),<wbr/> (mean_<wbr/>Gb + 1)/<wbr/>(mean_<wbr/>Gr + 1))</code></li>
13656</ol>
13657<p>The ratio R is the green split divergence reported for this property,<wbr/>
13658which represents how much the green channels differ in the mosaic
13659pattern.<wbr/>  This value is typically used to determine the treatment of
13660the green mosaic channels when demosaicing.<wbr/></p>
13661<p>The green split value can be roughly interpreted as follows:</p>
13662<ul>
13663<li>R &lt; 1.<wbr/>03 is a negligible split (&lt;3% divergence).<wbr/></li>
13664<li>1.<wbr/>20 &lt;= R &gt;= 1.<wbr/>03 will require some software
13665correction to avoid demosaic errors (3-20% divergence).<wbr/></li>
13666<li>R &gt; 1.<wbr/>20 will require strong software correction to produce
13667a usuable image (&gt;20% divergence).<wbr/></li>
13668</ul>
13669            </td>
13670          </tr>
13671
13672          <tr class="entries_header">
13673            <th class="th_details" colspan="5">HAL Implementation Details</th>
13674          </tr>
13675          <tr class="entry_cont">
13676            <td class="entry_details" colspan="5">
13677              <p>The green split given may be a static value based on prior
13678characterization of the camera sensor using the green split
13679calculation method given here over a large,<wbr/> representative,<wbr/> sample
13680set of images.<wbr/>  Other methods of calculation that produce equivalent
13681results,<wbr/> and can be interpreted in the same manner,<wbr/> may be used.<wbr/></p>
13682            </td>
13683          </tr>
13684
13685          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13686           <!-- end of entry -->
13687        
13688                
13689          <tr class="entry" id="dynamic_android.sensor.testPatternMode">
13690            <td class="entry_name" rowspan="5">
13691              android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
13692            </td>
13693            <td class="entry_type">
13694                <span class="entry_type_name entry_type_name_enum">int32</span>
13695
13696              <span class="entry_type_visibility"> [public]</span>
13697
13698                <ul class="entry_type_enum">
13699                  <li>
13700                    <span class="entry_type_enum_name">OFF</span>
13701                    <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
13702device returns captures from the image sensor.<wbr/></p></span>
13703                  </li>
13704                  <li>
13705                    <span class="entry_type_enum_name">SOLID_COLOR</span>
13706                    <span class="entry_type_enum_notes"><p>Each pixel in <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> is replaced by its
13707respective color channel provided in
13708<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
13709<p>For example:</p>
13710<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
13711</code></pre>
13712<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
13713<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
13714</code></pre>
13715<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
13716are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
13717                  </li>
13718                  <li>
13719                    <span class="entry_type_enum_name">COLOR_BARS</span>
13720                    <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
13721<p>The vertical bars (left-to-right) are as follows:</p>
13722<ul>
13723<li>100% white</li>
13724<li>yellow</li>
13725<li>cyan</li>
13726<li>green</li>
13727<li>magenta</li>
13728<li>red</li>
13729<li>blue</li>
13730<li>black</li>
13731</ul>
13732<p>In general the image would look like the following:</p>
13733<pre><code>W Y C G M R B K
13734W Y C G M R B K
13735W Y C G M R B K
13736W Y C G M R B K
13737W Y C G M R B K
13738.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
13739.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
13740.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
13741
13742(B = Blue,<wbr/> K = Black)
13743</code></pre>
13744<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
13745When this is not possible,<wbr/> the bar size should be rounded
13746down to the nearest integer and the pattern can repeat
13747on the right side.<wbr/></p>
13748<p>Each bar's height must always take up the full sensor
13749pixel array height.<wbr/></p>
13750<p>Each pixel in this test pattern must be set to either
137510% intensity or 100% intensity.<wbr/></p></span>
13752                  </li>
13753                  <li>
13754                    <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
13755                    <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
13756each bar should start at its specified color at the top,<wbr/>
13757and fade to gray at the bottom.<wbr/></p>
13758<p>Furthermore each bar is further subdivided into a left and
13759right half.<wbr/> The left half should have a smooth gradient,<wbr/>
13760and the right half should have a quantized gradient.<wbr/></p>
13761<p>In particular,<wbr/> the right half's should consist of blocks of the
13762same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
13763<p>The least significant bits in the quantized gradient should
13764be copied from the most significant bits of the smooth gradient.<wbr/></p>
13765<p>The height of each bar should always be a multiple of 128.<wbr/>
13766When this is not the case,<wbr/> the pattern should repeat at the bottom
13767of the image.<wbr/></p></span>
13768                  </li>
13769                  <li>
13770                    <span class="entry_type_enum_name">PN9</span>
13771                    <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
13772generated from a PN9 512-bit sequence (typically implemented
13773in hardware with a linear feedback shift register).<wbr/></p>
13774<p>The generator should be reset at the beginning of each frame,<wbr/>
13775and thus each subsequent raw frame with this test pattern should
13776be exactly the same as the last.<wbr/></p></span>
13777                  </li>
13778                  <li>
13779                    <span class="entry_type_enum_name">CUSTOM1</span>
13780                    <span class="entry_type_enum_value">256</span>
13781                    <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
13782available only on this camera device are at least this numeric
13783value.<wbr/></p>
13784<p>All of the custom test patterns will be static
13785(that is the raw image must not vary from frame to frame).<wbr/></p></span>
13786                  </li>
13787                </ul>
13788
13789            </td> <!-- entry_type -->
13790
13791            <td class="entry_description">
13792              <p>When enabled,<wbr/> the sensor sends a test pattern instead of
13793doing a real exposure from the camera.<wbr/></p>
13794            </td>
13795
13796            <td class="entry_units">
13797            </td>
13798
13799            <td class="entry_range">
13800              <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
13801<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
13802            </td>
13803
13804            <td class="entry_tags">
13805            </td>
13806
13807          </tr>
13808          <tr class="entries_header">
13809            <th class="th_details" colspan="5">Details</th>
13810          </tr>
13811          <tr class="entry_cont">
13812            <td class="entry_details" colspan="5">
13813              <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
13814by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
13815work as normal.<wbr/></p>
13816<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
13817occur (and that the test pattern remain unmodified,<wbr/> since the flash
13818would not actually affect it).<wbr/></p>
13819            </td>
13820          </tr>
13821
13822          <tr class="entries_header">
13823            <th class="th_details" colspan="5">HAL Implementation Details</th>
13824          </tr>
13825          <tr class="entry_cont">
13826            <td class="entry_details" colspan="5">
13827              <p>All test patterns are specified in the Bayer domain.<wbr/></p>
13828<p>The HAL may choose to substitute test patterns from the sensor
13829with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
13830indistinguishable to the ISP whether the data came from the
13831sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
13832            </td>
13833          </tr>
13834
13835          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13836           <!-- end of entry -->
13837        
13838        
13839
13840      <!-- end of kind -->
13841      </tbody>
13842
13843  <!-- end of section -->
13844  <tr><td colspan="6" id="section_shading" class="section">shading</td></tr>
13845
13846
13847      <tr><td colspan="6" class="kind">controls</td></tr>
13848
13849      <thead class="entries_header">
13850        <tr>
13851          <th class="th_name">Property Name</th>
13852          <th class="th_type">Type</th>
13853          <th class="th_description">Description</th>
13854          <th class="th_units">Units</th>
13855          <th class="th_range">Range</th>
13856          <th class="th_tags">Tags</th>
13857        </tr>
13858      </thead>
13859
13860      <tbody>
13861
13862        
13863
13864        
13865
13866        
13867
13868        
13869
13870                
13871          <tr class="entry" id="controls_android.shading.mode">
13872            <td class="entry_name" rowspan="3">
13873              android.<wbr/>shading.<wbr/>mode
13874            </td>
13875            <td class="entry_type">
13876                <span class="entry_type_name entry_type_name_enum">byte</span>
13877
13878              <span class="entry_type_visibility"> [public]</span>
13879
13880                <ul class="entry_type_enum">
13881                  <li>
13882                    <span class="entry_type_enum_name">OFF</span>
13883                    <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
13884                  </li>
13885                  <li>
13886                    <span class="entry_type_enum_name">FAST</span>
13887                    <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor raw output</p></span>
13888                  </li>
13889                  <li>
13890                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
13891                    <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
13892                  </li>
13893                </ul>
13894
13895            </td> <!-- entry_type -->
13896
13897            <td class="entry_description">
13898              <p>Quality of lens shading correction applied
13899to the image data.<wbr/></p>
13900            </td>
13901
13902            <td class="entry_units">
13903            </td>
13904
13905            <td class="entry_range">
13906            </td>
13907
13908            <td class="entry_tags">
13909            </td>
13910
13911          </tr>
13912          <tr class="entries_header">
13913            <th class="th_details" colspan="5">Details</th>
13914          </tr>
13915          <tr class="entry_cont">
13916            <td class="entry_details" colspan="5">
13917              <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
13918camera device,<wbr/> and an identity lens shading map data will be provided
13919if <code><a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a> == ON</code>.<wbr/> For example,<wbr/> for lens
13920shading map with size specified as <code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]</code>,<wbr/>
13921the output <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> for this case will be an identity map
13922shown below:</p>
13923<pre><code>[ 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
13924    1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
13925  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
13926    1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
13927  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>   1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
13928    1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0 ]
13929</code></pre>
13930<p>When set to other modes,<wbr/> lens shading correction will be applied by the
13931camera device.<wbr/> Applications can request lens shading map data by setting
13932<a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a> to ON,<wbr/> and then the camera device will provide
13933lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
13934by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
13935            </td>
13936          </tr>
13937
13938
13939          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13940           <!-- end of entry -->
13941        
13942                
13943          <tr class="entry" id="controls_android.shading.strength">
13944            <td class="entry_name" rowspan="1">
13945              android.<wbr/>shading.<wbr/>strength
13946            </td>
13947            <td class="entry_type">
13948                <span class="entry_type_name">byte</span>
13949
13950              <span class="entry_type_visibility"> [system]</span>
13951
13952
13953            </td> <!-- entry_type -->
13954
13955            <td class="entry_description">
13956              <p>Control the amount of shading correction
13957applied to the images</p>
13958            </td>
13959
13960            <td class="entry_units">
13961              unitless: 1-10; 10 is full shading
13962          compensation
13963            </td>
13964
13965            <td class="entry_range">
13966            </td>
13967
13968            <td class="entry_tags">
13969              <ul class="entry_tags">
13970                  <li><a href="#tag_ADV">ADV</a></li>
13971              </ul>
13972            </td>
13973
13974          </tr>
13975
13976
13977          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13978           <!-- end of entry -->
13979        
13980        
13981
13982      <!-- end of kind -->
13983      </tbody>
13984      <tr><td colspan="6" class="kind">dynamic</td></tr>
13985
13986      <thead class="entries_header">
13987        <tr>
13988          <th class="th_name">Property Name</th>
13989          <th class="th_type">Type</th>
13990          <th class="th_description">Description</th>
13991          <th class="th_units">Units</th>
13992          <th class="th_range">Range</th>
13993          <th class="th_tags">Tags</th>
13994        </tr>
13995      </thead>
13996
13997      <tbody>
13998
13999        
14000
14001        
14002
14003        
14004
14005        
14006
14007                
14008          <tr class="entry" id="dynamic_android.shading.mode">
14009            <td class="entry_name" rowspan="3">
14010              android.<wbr/>shading.<wbr/>mode
14011            </td>
14012            <td class="entry_type">
14013                <span class="entry_type_name entry_type_name_enum">byte</span>
14014
14015              <span class="entry_type_visibility"> [public]</span>
14016
14017                <ul class="entry_type_enum">
14018                  <li>
14019                    <span class="entry_type_enum_name">OFF</span>
14020                    <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
14021                  </li>
14022                  <li>
14023                    <span class="entry_type_enum_name">FAST</span>
14024                    <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor raw output</p></span>
14025                  </li>
14026                  <li>
14027                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
14028                    <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
14029                  </li>
14030                </ul>
14031
14032            </td> <!-- entry_type -->
14033
14034            <td class="entry_description">
14035              <p>Quality of lens shading correction applied
14036to the image data.<wbr/></p>
14037            </td>
14038
14039            <td class="entry_units">
14040            </td>
14041
14042            <td class="entry_range">
14043            </td>
14044
14045            <td class="entry_tags">
14046            </td>
14047
14048          </tr>
14049          <tr class="entries_header">
14050            <th class="th_details" colspan="5">Details</th>
14051          </tr>
14052          <tr class="entry_cont">
14053            <td class="entry_details" colspan="5">
14054              <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
14055camera device,<wbr/> and an identity lens shading map data will be provided
14056if <code><a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a> == ON</code>.<wbr/> For example,<wbr/> for lens
14057shading map with size specified as <code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]</code>,<wbr/>
14058the output <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> for this case will be an identity map
14059shown below:</p>
14060<pre><code>[ 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
14061    1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
14062  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
14063    1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
14064  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>   1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
14065    1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0 ]
14066</code></pre>
14067<p>When set to other modes,<wbr/> lens shading correction will be applied by the
14068camera device.<wbr/> Applications can request lens shading map data by setting
14069<a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a> to ON,<wbr/> and then the camera device will provide
14070lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
14071by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
14072            </td>
14073          </tr>
14074
14075
14076          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14077           <!-- end of entry -->
14078        
14079        
14080
14081      <!-- end of kind -->
14082      </tbody>
14083
14084  <!-- end of section -->
14085  <tr><td colspan="6" id="section_statistics" class="section">statistics</td></tr>
14086
14087
14088      <tr><td colspan="6" class="kind">controls</td></tr>
14089
14090      <thead class="entries_header">
14091        <tr>
14092          <th class="th_name">Property Name</th>
14093          <th class="th_type">Type</th>
14094          <th class="th_description">Description</th>
14095          <th class="th_units">Units</th>
14096          <th class="th_range">Range</th>
14097          <th class="th_tags">Tags</th>
14098        </tr>
14099      </thead>
14100
14101      <tbody>
14102
14103        
14104
14105        
14106
14107        
14108
14109        
14110
14111                
14112          <tr class="entry" id="controls_android.statistics.faceDetectMode">
14113            <td class="entry_name" rowspan="3">
14114              android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
14115            </td>
14116            <td class="entry_type">
14117                <span class="entry_type_name entry_type_name_enum">byte</span>
14118
14119              <span class="entry_type_visibility"> [public]</span>
14120
14121                <ul class="entry_type_enum">
14122                  <li>
14123                    <span class="entry_type_enum_name">OFF</span>
14124                  </li>
14125                  <li>
14126                    <span class="entry_type_enum_name">SIMPLE</span>
14127                    <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
14128only</p></span>
14129                  </li>
14130                  <li>
14131                    <span class="entry_type_enum_name">FULL</span>
14132                    <span class="entry_type_enum_notes"><p>Optional Return all face
14133metadata</p></span>
14134                  </li>
14135                </ul>
14136
14137            </td> <!-- entry_type -->
14138
14139            <td class="entry_description">
14140              <p>State of the face detector
14141unit</p>
14142            </td>
14143
14144            <td class="entry_units">
14145            </td>
14146
14147            <td class="entry_range">
14148              <p><a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a></p>
14149            </td>
14150
14151            <td class="entry_tags">
14152              <ul class="entry_tags">
14153                  <li><a href="#tag_BC">BC</a></li>
14154              </ul>
14155            </td>
14156
14157          </tr>
14158          <tr class="entries_header">
14159            <th class="th_details" colspan="5">Details</th>
14160          </tr>
14161          <tr class="entry_cont">
14162            <td class="entry_details" colspan="5">
14163              <p>Whether face detection is enabled,<wbr/> and whether it
14164should output just the basic fields or the full set of
14165fields.<wbr/> Value must be one of the
14166<a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a>.<wbr/></p>
14167            </td>
14168          </tr>
14169
14170
14171          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14172           <!-- end of entry -->
14173        
14174                
14175          <tr class="entry" id="controls_android.statistics.histogramMode">
14176            <td class="entry_name" rowspan="1">
14177              android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
14178            </td>
14179            <td class="entry_type">
14180                <span class="entry_type_name entry_type_name_enum">byte</span>
14181
14182              <span class="entry_type_visibility"> [system as boolean]</span>
14183
14184                <ul class="entry_type_enum">
14185                  <li>
14186                    <span class="entry_type_enum_name">OFF</span>
14187                  </li>
14188                  <li>
14189                    <span class="entry_type_enum_name">ON</span>
14190                  </li>
14191                </ul>
14192
14193            </td> <!-- entry_type -->
14194
14195            <td class="entry_description">
14196              <p>Operating mode for histogram
14197generation</p>
14198            </td>
14199
14200            <td class="entry_units">
14201            </td>
14202
14203            <td class="entry_range">
14204            </td>
14205
14206            <td class="entry_tags">
14207              <ul class="entry_tags">
14208                  <li><a href="#tag_V1">V1</a></li>
14209              </ul>
14210            </td>
14211
14212          </tr>
14213
14214
14215          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14216           <!-- end of entry -->
14217        
14218                
14219          <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
14220            <td class="entry_name" rowspan="1">
14221              android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
14222            </td>
14223            <td class="entry_type">
14224                <span class="entry_type_name entry_type_name_enum">byte</span>
14225
14226              <span class="entry_type_visibility"> [system as boolean]</span>
14227
14228                <ul class="entry_type_enum">
14229                  <li>
14230                    <span class="entry_type_enum_name">OFF</span>
14231                  </li>
14232                  <li>
14233                    <span class="entry_type_enum_name">ON</span>
14234                  </li>
14235                </ul>
14236
14237            </td> <!-- entry_type -->
14238
14239            <td class="entry_description">
14240              <p>Operating mode for sharpness map
14241generation</p>
14242            </td>
14243
14244            <td class="entry_units">
14245            </td>
14246
14247            <td class="entry_range">
14248            </td>
14249
14250            <td class="entry_tags">
14251              <ul class="entry_tags">
14252                  <li><a href="#tag_V1">V1</a></li>
14253              </ul>
14254            </td>
14255
14256          </tr>
14257
14258
14259          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14260           <!-- end of entry -->
14261        
14262                
14263          <tr class="entry" id="controls_android.statistics.hotPixelMapMode">
14264            <td class="entry_name" rowspan="3">
14265              android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map<wbr/>Mode
14266            </td>
14267            <td class="entry_type">
14268                <span class="entry_type_name entry_type_name_enum">byte</span>
14269
14270              <span class="entry_type_visibility"> [public as boolean]</span>
14271
14272                <ul class="entry_type_enum">
14273                  <li>
14274                    <span class="entry_type_enum_name">OFF</span>
14275                  </li>
14276                  <li>
14277                    <span class="entry_type_enum_name">ON</span>
14278                  </li>
14279                </ul>
14280
14281            </td> <!-- entry_type -->
14282
14283            <td class="entry_description">
14284              <p>Operating mode for hotpixel map generation.<wbr/></p>
14285            </td>
14286
14287            <td class="entry_units">
14288            </td>
14289
14290            <td class="entry_range">
14291            </td>
14292
14293            <td class="entry_tags">
14294              <ul class="entry_tags">
14295                  <li><a href="#tag_V1">V1</a></li>
14296                  <li><a href="#tag_DNG">DNG</a></li>
14297              </ul>
14298            </td>
14299
14300          </tr>
14301          <tr class="entries_header">
14302            <th class="th_details" colspan="5">Details</th>
14303          </tr>
14304          <tr class="entry_cont">
14305            <td class="entry_details" colspan="5">
14306              <p>If set to ON,<wbr/> a hotpixel map is returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/>
14307If set to OFF,<wbr/> no hotpixel map should be returned.<wbr/></p>
14308<p>This must be set to a valid mode from <a href="#static_android.statistics.info.availableHotPixelMapModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Map<wbr/>Modes</a>.<wbr/></p>
14309            </td>
14310          </tr>
14311
14312
14313          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14314           <!-- end of entry -->
14315        
14316                
14317          <tr class="entry" id="controls_android.statistics.lensShadingMapMode">
14318            <td class="entry_name" rowspan="3">
14319              android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
14320            </td>
14321            <td class="entry_type">
14322                <span class="entry_type_name entry_type_name_enum">byte</span>
14323
14324              <span class="entry_type_visibility"> [public]</span>
14325
14326                <ul class="entry_type_enum">
14327                  <li>
14328                    <span class="entry_type_enum_name">OFF</span>
14329                  </li>
14330                  <li>
14331                    <span class="entry_type_enum_name">ON</span>
14332                  </li>
14333                </ul>
14334
14335            </td> <!-- entry_type -->
14336
14337            <td class="entry_description">
14338              <p>Whether the camera device will output the lens
14339shading map in output result metadata.<wbr/></p>
14340            </td>
14341
14342            <td class="entry_units">
14343            </td>
14344
14345            <td class="entry_range">
14346            </td>
14347
14348            <td class="entry_tags">
14349            </td>
14350
14351          </tr>
14352          <tr class="entries_header">
14353            <th class="th_details" colspan="5">Details</th>
14354          </tr>
14355          <tr class="entry_cont">
14356            <td class="entry_details" colspan="5">
14357              <p>When set to ON,<wbr/>
14358<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> must be provided in
14359the output result metadata.<wbr/></p>
14360            </td>
14361          </tr>
14362
14363
14364          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14365           <!-- end of entry -->
14366        
14367        
14368
14369      <!-- end of kind -->
14370      </tbody>
14371      <tr><td colspan="6" class="kind">static</td></tr>
14372
14373      <thead class="entries_header">
14374        <tr>
14375          <th class="th_name">Property Name</th>
14376          <th class="th_type">Type</th>
14377          <th class="th_description">Description</th>
14378          <th class="th_units">Units</th>
14379          <th class="th_range">Range</th>
14380          <th class="th_tags">Tags</th>
14381        </tr>
14382      </thead>
14383
14384      <tbody>
14385
14386        
14387
14388        
14389
14390        
14391
14392        
14393                
14394            
14395
14396                
14397          <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
14398            <td class="entry_name" rowspan="3">
14399              android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes
14400            </td>
14401            <td class="entry_type">
14402                <span class="entry_type_name">byte</span>
14403                <span class="entry_type_container">x</span>
14404
14405                <span class="entry_type_array">
14406                  n
14407                </span>
14408              <span class="entry_type_visibility"> [public]</span>
14409                <div class="entry_type_notes">List of enums from android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</div>
14410
14411
14412            </td> <!-- entry_type -->
14413
14414            <td class="entry_description">
14415              <p>Which face detection modes are available,<wbr/>
14416if any</p>
14417            </td>
14418
14419            <td class="entry_units">
14420              List of enum:
14421            OFF
14422            SIMPLE
14423            FULL
14424            </td>
14425
14426            <td class="entry_range">
14427            </td>
14428
14429            <td class="entry_tags">
14430            </td>
14431
14432          </tr>
14433          <tr class="entries_header">
14434            <th class="th_details" colspan="5">Details</th>
14435          </tr>
14436          <tr class="entry_cont">
14437            <td class="entry_details" colspan="5">
14438              <p>OFF means face detection is disabled,<wbr/> it must
14439be included in the list.<wbr/></p>
14440<p>SIMPLE means the device supports the
14441<a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
14442<a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a> outputs.<wbr/></p>
14443<p>FULL means the device additionally supports the
14444<a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a> and
14445<a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a> outputs.<wbr/></p>
14446            </td>
14447          </tr>
14448
14449
14450          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14451           <!-- end of entry -->
14452        
14453                
14454          <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
14455            <td class="entry_name" rowspan="1">
14456              android.<wbr/>statistics.<wbr/>info.<wbr/>histogram<wbr/>Bucket<wbr/>Count
14457            </td>
14458            <td class="entry_type">
14459                <span class="entry_type_name">int32</span>
14460
14461              <span class="entry_type_visibility"> [system]</span>
14462
14463
14464            </td> <!-- entry_type -->
14465
14466            <td class="entry_description">
14467              <p>Number of histogram buckets
14468supported</p>
14469            </td>
14470
14471            <td class="entry_units">
14472            </td>
14473
14474            <td class="entry_range">
14475              <p>&gt;= 64</p>
14476            </td>
14477
14478            <td class="entry_tags">
14479            </td>
14480
14481          </tr>
14482
14483
14484          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14485           <!-- end of entry -->
14486        
14487                
14488          <tr class="entry" id="static_android.statistics.info.maxFaceCount">
14489            <td class="entry_name" rowspan="1">
14490              android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count
14491            </td>
14492            <td class="entry_type">
14493                <span class="entry_type_name">int32</span>
14494
14495              <span class="entry_type_visibility"> [public]</span>
14496
14497
14498            </td> <!-- entry_type -->
14499
14500            <td class="entry_description">
14501              <p>Maximum number of simultaneously detectable
14502faces</p>
14503            </td>
14504
14505            <td class="entry_units">
14506            </td>
14507
14508            <td class="entry_range">
14509              <p>&gt;= 4 if <a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a> lists
14510modes besides OFF,<wbr/> otherwise 0</p>
14511            </td>
14512
14513            <td class="entry_tags">
14514            </td>
14515
14516          </tr>
14517
14518
14519          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14520           <!-- end of entry -->
14521        
14522                
14523          <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
14524            <td class="entry_name" rowspan="1">
14525              android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Histogram<wbr/>Count
14526            </td>
14527            <td class="entry_type">
14528                <span class="entry_type_name">int32</span>
14529
14530              <span class="entry_type_visibility"> [system]</span>
14531
14532
14533            </td> <!-- entry_type -->
14534
14535            <td class="entry_description">
14536              <p>Maximum value possible for a histogram
14537bucket</p>
14538            </td>
14539
14540            <td class="entry_units">
14541            </td>
14542
14543            <td class="entry_range">
14544            </td>
14545
14546            <td class="entry_tags">
14547            </td>
14548
14549          </tr>
14550
14551
14552          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14553           <!-- end of entry -->
14554        
14555                
14556          <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
14557            <td class="entry_name" rowspan="1">
14558              android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Sharpness<wbr/>Map<wbr/>Value
14559            </td>
14560            <td class="entry_type">
14561                <span class="entry_type_name">int32</span>
14562
14563              <span class="entry_type_visibility"> [system]</span>
14564
14565
14566            </td> <!-- entry_type -->
14567
14568            <td class="entry_description">
14569              <p>Maximum value possible for a sharpness map
14570region.<wbr/></p>
14571            </td>
14572
14573            <td class="entry_units">
14574            </td>
14575
14576            <td class="entry_range">
14577            </td>
14578
14579            <td class="entry_tags">
14580            </td>
14581
14582          </tr>
14583
14584
14585          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14586           <!-- end of entry -->
14587        
14588                
14589          <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
14590            <td class="entry_name" rowspan="1">
14591              android.<wbr/>statistics.<wbr/>info.<wbr/>sharpness<wbr/>Map<wbr/>Size
14592            </td>
14593            <td class="entry_type">
14594                <span class="entry_type_name">int32</span>
14595                <span class="entry_type_container">x</span>
14596
14597                <span class="entry_type_array">
14598                  2
14599                </span>
14600              <span class="entry_type_visibility"> [system as size]</span>
14601                <div class="entry_type_notes">width x height</div>
14602
14603
14604            </td> <!-- entry_type -->
14605
14606            <td class="entry_description">
14607              <p>Dimensions of the sharpness
14608map</p>
14609            </td>
14610
14611            <td class="entry_units">
14612            </td>
14613
14614            <td class="entry_range">
14615              <p>Must be at least 32 x 32</p>
14616            </td>
14617
14618            <td class="entry_tags">
14619            </td>
14620
14621          </tr>
14622
14623
14624          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14625           <!-- end of entry -->
14626        
14627                
14628          <tr class="entry" id="static_android.statistics.info.availableHotPixelMapModes">
14629            <td class="entry_name" rowspan="3">
14630              android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Map<wbr/>Modes
14631            </td>
14632            <td class="entry_type">
14633                <span class="entry_type_name">byte</span>
14634                <span class="entry_type_container">x</span>
14635
14636                <span class="entry_type_array">
14637                  n
14638                </span>
14639              <span class="entry_type_visibility"> [public as boolean]</span>
14640                <div class="entry_type_notes">list of enums</div>
14641
14642
14643            </td> <!-- entry_type -->
14644
14645            <td class="entry_description">
14646              <p>The set of hot pixel map output modes supported by this camera device.<wbr/></p>
14647            </td>
14648
14649            <td class="entry_units">
14650            </td>
14651
14652            <td class="entry_range">
14653            </td>
14654
14655            <td class="entry_tags">
14656              <ul class="entry_tags">
14657                  <li><a href="#tag_V1">V1</a></li>
14658                  <li><a href="#tag_DNG">DNG</a></li>
14659              </ul>
14660            </td>
14661
14662          </tr>
14663          <tr class="entries_header">
14664            <th class="th_details" colspan="5">Details</th>
14665          </tr>
14666          <tr class="entry_cont">
14667            <td class="entry_details" colspan="5">
14668              <p>This tag lists valid output modes for <a href="#controls_android.statistics.hotPixelMapMode">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map<wbr/>Mode</a>.<wbr/></p>
14669<p>If no hotpixel map is available for this camera device,<wbr/> this will contain
14670only OFF.<wbr/>  If the hotpixel map is available,<wbr/> this should include both
14671the ON and OFF options.<wbr/></p>
14672            </td>
14673          </tr>
14674
14675
14676          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14677           <!-- end of entry -->
14678        
14679        
14680        
14681
14682        
14683
14684      <!-- end of kind -->
14685      </tbody>
14686      <tr><td colspan="6" class="kind">dynamic</td></tr>
14687
14688      <thead class="entries_header">
14689        <tr>
14690          <th class="th_name">Property Name</th>
14691          <th class="th_type">Type</th>
14692          <th class="th_description">Description</th>
14693          <th class="th_units">Units</th>
14694          <th class="th_range">Range</th>
14695          <th class="th_tags">Tags</th>
14696        </tr>
14697      </thead>
14698
14699      <tbody>
14700
14701        
14702
14703        
14704
14705        
14706
14707        
14708
14709                
14710          <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
14711            <td class="entry_name" rowspan="3">
14712              android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
14713            </td>
14714            <td class="entry_type">
14715                <span class="entry_type_name entry_type_name_enum">byte</span>
14716
14717              <span class="entry_type_visibility"> [public]</span>
14718
14719                <ul class="entry_type_enum">
14720                  <li>
14721                    <span class="entry_type_enum_name">OFF</span>
14722                  </li>
14723                  <li>
14724                    <span class="entry_type_enum_name">SIMPLE</span>
14725                    <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
14726only</p></span>
14727                  </li>
14728                  <li>
14729                    <span class="entry_type_enum_name">FULL</span>
14730                    <span class="entry_type_enum_notes"><p>Optional Return all face
14731metadata</p></span>
14732                  </li>
14733                </ul>
14734
14735            </td> <!-- entry_type -->
14736
14737            <td class="entry_description">
14738              <p>State of the face detector
14739unit</p>
14740            </td>
14741
14742            <td class="entry_units">
14743            </td>
14744
14745            <td class="entry_range">
14746              <p><a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a></p>
14747            </td>
14748
14749            <td class="entry_tags">
14750              <ul class="entry_tags">
14751                  <li><a href="#tag_BC">BC</a></li>
14752              </ul>
14753            </td>
14754
14755          </tr>
14756          <tr class="entries_header">
14757            <th class="th_details" colspan="5">Details</th>
14758          </tr>
14759          <tr class="entry_cont">
14760            <td class="entry_details" colspan="5">
14761              <p>Whether face detection is enabled,<wbr/> and whether it
14762should output just the basic fields or the full set of
14763fields.<wbr/> Value must be one of the
14764<a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a>.<wbr/></p>
14765            </td>
14766          </tr>
14767
14768
14769          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14770           <!-- end of entry -->
14771        
14772                
14773          <tr class="entry" id="dynamic_android.statistics.faceIds">
14774            <td class="entry_name" rowspan="3">
14775              android.<wbr/>statistics.<wbr/>face<wbr/>Ids
14776            </td>
14777            <td class="entry_type">
14778                <span class="entry_type_name">int32</span>
14779                <span class="entry_type_container">x</span>
14780
14781                <span class="entry_type_array">
14782                  n
14783                </span>
14784              <span class="entry_type_visibility"> [hidden]</span>
14785
14786
14787            </td> <!-- entry_type -->
14788
14789            <td class="entry_description">
14790              <p>List of unique IDs for detected
14791faces</p>
14792            </td>
14793
14794            <td class="entry_units">
14795            </td>
14796
14797            <td class="entry_range">
14798            </td>
14799
14800            <td class="entry_tags">
14801              <ul class="entry_tags">
14802                  <li><a href="#tag_BC">BC</a></li>
14803              </ul>
14804            </td>
14805
14806          </tr>
14807          <tr class="entries_header">
14808            <th class="th_details" colspan="5">Details</th>
14809          </tr>
14810          <tr class="entry_cont">
14811            <td class="entry_details" colspan="5">
14812              <p>Only available if faceDetectMode == FULL</p>
14813            </td>
14814          </tr>
14815
14816
14817          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14818           <!-- end of entry -->
14819        
14820                
14821          <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
14822            <td class="entry_name" rowspan="3">
14823              android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks
14824            </td>
14825            <td class="entry_type">
14826                <span class="entry_type_name">int32</span>
14827                <span class="entry_type_container">x</span>
14828
14829                <span class="entry_type_array">
14830                  n x 6
14831                </span>
14832              <span class="entry_type_visibility"> [hidden]</span>
14833                <div class="entry_type_notes">(leftEyeX,<wbr/> leftEyeY,<wbr/> rightEyeX,<wbr/> rightEyeY,<wbr/> mouthX,<wbr/> mouthY)</div>
14834
14835
14836            </td> <!-- entry_type -->
14837
14838            <td class="entry_description">
14839              <p>List of landmarks for detected
14840faces</p>
14841            </td>
14842
14843            <td class="entry_units">
14844            </td>
14845
14846            <td class="entry_range">
14847            </td>
14848
14849            <td class="entry_tags">
14850              <ul class="entry_tags">
14851                  <li><a href="#tag_BC">BC</a></li>
14852              </ul>
14853            </td>
14854
14855          </tr>
14856          <tr class="entries_header">
14857            <th class="th_details" colspan="5">Details</th>
14858          </tr>
14859          <tr class="entry_cont">
14860            <td class="entry_details" colspan="5">
14861              <p>Only available if faceDetectMode == FULL</p>
14862            </td>
14863          </tr>
14864
14865
14866          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14867           <!-- end of entry -->
14868        
14869                
14870          <tr class="entry" id="dynamic_android.statistics.faceRectangles">
14871            <td class="entry_name" rowspan="3">
14872              android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles
14873            </td>
14874            <td class="entry_type">
14875                <span class="entry_type_name">int32</span>
14876                <span class="entry_type_container">x</span>
14877
14878                <span class="entry_type_array">
14879                  n x 4
14880                </span>
14881              <span class="entry_type_visibility"> [hidden as rectangle]</span>
14882                <div class="entry_type_notes">(xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax).<wbr/> (0,<wbr/>0) is top-left of active pixel area</div>
14883
14884
14885            </td> <!-- entry_type -->
14886
14887            <td class="entry_description">
14888              <p>List of the bounding rectangles for detected
14889faces</p>
14890            </td>
14891
14892            <td class="entry_units">
14893            </td>
14894
14895            <td class="entry_range">
14896            </td>
14897
14898            <td class="entry_tags">
14899              <ul class="entry_tags">
14900                  <li><a href="#tag_BC">BC</a></li>
14901              </ul>
14902            </td>
14903
14904          </tr>
14905          <tr class="entries_header">
14906            <th class="th_details" colspan="5">Details</th>
14907          </tr>
14908          <tr class="entry_cont">
14909            <td class="entry_details" colspan="5">
14910              <p>Only available if faceDetectMode != OFF</p>
14911            </td>
14912          </tr>
14913
14914
14915          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14916           <!-- end of entry -->
14917        
14918                
14919          <tr class="entry" id="dynamic_android.statistics.faceScores">
14920            <td class="entry_name" rowspan="3">
14921              android.<wbr/>statistics.<wbr/>face<wbr/>Scores
14922            </td>
14923            <td class="entry_type">
14924                <span class="entry_type_name">byte</span>
14925                <span class="entry_type_container">x</span>
14926
14927                <span class="entry_type_array">
14928                  n
14929                </span>
14930              <span class="entry_type_visibility"> [hidden]</span>
14931
14932
14933            </td> <!-- entry_type -->
14934
14935            <td class="entry_description">
14936              <p>List of the face confidence scores for
14937detected faces</p>
14938            </td>
14939
14940            <td class="entry_units">
14941            </td>
14942
14943            <td class="entry_range">
14944              <p>1-100</p>
14945            </td>
14946
14947            <td class="entry_tags">
14948              <ul class="entry_tags">
14949                  <li><a href="#tag_BC">BC</a></li>
14950              </ul>
14951            </td>
14952
14953          </tr>
14954          <tr class="entries_header">
14955            <th class="th_details" colspan="5">Details</th>
14956          </tr>
14957          <tr class="entry_cont">
14958            <td class="entry_details" colspan="5">
14959              <p>Only available if faceDetectMode != OFF.<wbr/> The value should be
14960meaningful (for example,<wbr/> setting 100 at all times is illegal).<wbr/></p>
14961            </td>
14962          </tr>
14963
14964
14965          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14966           <!-- end of entry -->
14967        
14968                
14969          <tr class="entry" id="dynamic_android.statistics.histogram">
14970            <td class="entry_name" rowspan="3">
14971              android.<wbr/>statistics.<wbr/>histogram
14972            </td>
14973            <td class="entry_type">
14974                <span class="entry_type_name">int32</span>
14975                <span class="entry_type_container">x</span>
14976
14977                <span class="entry_type_array">
14978                  n x 3
14979                </span>
14980              <span class="entry_type_visibility"> [system]</span>
14981                <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>
14982
14983
14984            </td> <!-- entry_type -->
14985
14986            <td class="entry_description">
14987              <p>A 3-channel histogram based on the raw
14988sensor data</p>
14989            </td>
14990
14991            <td class="entry_units">
14992            </td>
14993
14994            <td class="entry_range">
14995            </td>
14996
14997            <td class="entry_tags">
14998              <ul class="entry_tags">
14999                  <li><a href="#tag_V1">V1</a></li>
15000              </ul>
15001            </td>
15002
15003          </tr>
15004          <tr class="entries_header">
15005            <th class="th_details" colspan="5">Details</th>
15006          </tr>
15007          <tr class="entry_cont">
15008            <td class="entry_details" colspan="5">
15009              <p>The k'th bucket (0-based) covers the input range
15010(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/>
15011(k + 1) * w /<wbr/> N ).<wbr/> If only a monochrome sharpness map is
15012supported,<wbr/> all channels should have the same data</p>
15013            </td>
15014          </tr>
15015
15016
15017          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15018           <!-- end of entry -->
15019        
15020                
15021          <tr class="entry" id="dynamic_android.statistics.histogramMode">
15022            <td class="entry_name" rowspan="1">
15023              android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
15024            </td>
15025            <td class="entry_type">
15026                <span class="entry_type_name entry_type_name_enum">byte</span>
15027
15028              <span class="entry_type_visibility"> [system as boolean]</span>
15029
15030                <ul class="entry_type_enum">
15031                  <li>
15032                    <span class="entry_type_enum_name">OFF</span>
15033                  </li>
15034                  <li>
15035                    <span class="entry_type_enum_name">ON</span>
15036                  </li>
15037                </ul>
15038
15039            </td> <!-- entry_type -->
15040
15041            <td class="entry_description">
15042              <p>Operating mode for histogram
15043generation</p>
15044            </td>
15045
15046            <td class="entry_units">
15047            </td>
15048
15049            <td class="entry_range">
15050            </td>
15051
15052            <td class="entry_tags">
15053              <ul class="entry_tags">
15054                  <li><a href="#tag_V1">V1</a></li>
15055              </ul>
15056            </td>
15057
15058          </tr>
15059
15060
15061          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15062           <!-- end of entry -->
15063        
15064                
15065          <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
15066            <td class="entry_name" rowspan="3">
15067              android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map
15068            </td>
15069            <td class="entry_type">
15070                <span class="entry_type_name">int32</span>
15071                <span class="entry_type_container">x</span>
15072
15073                <span class="entry_type_array">
15074                  n x m x 3
15075                </span>
15076              <span class="entry_type_visibility"> [system]</span>
15077                <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>
15078
15079
15080            </td> <!-- entry_type -->
15081
15082            <td class="entry_description">
15083              <p>A 3-channel sharpness map,<wbr/> based on the raw
15084sensor data</p>
15085            </td>
15086
15087            <td class="entry_units">
15088            </td>
15089
15090            <td class="entry_range">
15091            </td>
15092
15093            <td class="entry_tags">
15094              <ul class="entry_tags">
15095                  <li><a href="#tag_V1">V1</a></li>
15096              </ul>
15097            </td>
15098
15099          </tr>
15100          <tr class="entries_header">
15101            <th class="th_details" colspan="5">Details</th>
15102          </tr>
15103          <tr class="entry_cont">
15104            <td class="entry_details" colspan="5">
15105              <p>If only a monochrome sharpness map is supported,<wbr/>
15106all channels should have the same data</p>
15107            </td>
15108          </tr>
15109
15110
15111          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15112           <!-- end of entry -->
15113        
15114                
15115          <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
15116            <td class="entry_name" rowspan="1">
15117              android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
15118            </td>
15119            <td class="entry_type">
15120                <span class="entry_type_name entry_type_name_enum">byte</span>
15121
15122              <span class="entry_type_visibility"> [system as boolean]</span>
15123
15124                <ul class="entry_type_enum">
15125                  <li>
15126                    <span class="entry_type_enum_name">OFF</span>
15127                  </li>
15128                  <li>
15129                    <span class="entry_type_enum_name">ON</span>
15130                  </li>
15131                </ul>
15132
15133            </td> <!-- entry_type -->
15134
15135            <td class="entry_description">
15136              <p>Operating mode for sharpness map
15137generation</p>
15138            </td>
15139
15140            <td class="entry_units">
15141            </td>
15142
15143            <td class="entry_range">
15144            </td>
15145
15146            <td class="entry_tags">
15147              <ul class="entry_tags">
15148                  <li><a href="#tag_V1">V1</a></li>
15149              </ul>
15150            </td>
15151
15152          </tr>
15153
15154
15155          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15156           <!-- end of entry -->
15157        
15158                
15159          <tr class="entry" id="dynamic_android.statistics.lensShadingMap">
15160            <td class="entry_name" rowspan="3">
15161              android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map
15162            </td>
15163            <td class="entry_type">
15164                <span class="entry_type_name">float</span>
15165                <span class="entry_type_container">x</span>
15166
15167                <span class="entry_type_array">
15168                  4 x n x m
15169                </span>
15170              <span class="entry_type_visibility"> [public]</span>
15171                <div class="entry_type_notes">2D array of float gain factors per channel to correct lens shading</div>
15172
15173
15174            </td> <!-- entry_type -->
15175
15176            <td class="entry_description">
15177              <p>The shading map is a low-resolution floating-point map
15178that lists the coefficients used to correct for vignetting,<wbr/> for each
15179Bayer color channel.<wbr/></p>
15180            </td>
15181
15182            <td class="entry_units">
15183            </td>
15184
15185            <td class="entry_range">
15186              <p>Each gain factor is &gt;= 1</p>
15187            </td>
15188
15189            <td class="entry_tags">
15190            </td>
15191
15192          </tr>
15193          <tr class="entries_header">
15194            <th class="th_details" colspan="5">Details</th>
15195          </tr>
15196          <tr class="entry_cont">
15197            <td class="entry_details" colspan="5">
15198              <p>The least shaded section of the image should have a gain factor
15199of 1; all other sections should have gains above 1.<wbr/></p>
15200<p>When <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> = TRANSFORM_<wbr/>MATRIX,<wbr/> the map
15201must take into account the colorCorrection settings.<wbr/></p>
15202<p>The shading map is for the entire active pixel array,<wbr/> and is not
15203affected by the crop region specified in the request.<wbr/> Each shading map
15204entry is the value of the shading compensation map over a specific
15205pixel on the sensor.<wbr/>  Specifically,<wbr/> with a (N x M) resolution shading
15206map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
15207(x,<wbr/>y) ϵ (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
15208pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
15209The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
15210<p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
15211channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
15212The shading map is stored in a fully interleaved format,<wbr/> and its size
15213is 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>
15214<p>The shading map should have on the order of 30-40 rows and columns,<wbr/>
15215and must be smaller than 64x64.<wbr/></p>
15216<p>As an example,<wbr/> given a very small map defined as:</p>
15217<pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]
15218<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> =
15219[ 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/>
15220    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/>
15221  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/>
15222    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/>
15223  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/>
15224    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 ]
15225</code></pre>
15226<p>The low-resolution scaling map images for each channel are
15227(displayed using nearest-neighbor interpolation):</p>
15228<p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
15229<img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
15230<img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
15231<img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
15232<p>As a visualization only,<wbr/> inverting the full-color map to recover an
15233image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p>
15234<p><img alt="Image of a uniform white wall (inverse shading map)" src="images/camera2/metadata/android.statistics.lensShadingMap/inv_shading.png"/></p>
15235            </td>
15236          </tr>
15237
15238
15239          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15240           <!-- end of entry -->
15241        
15242                
15243          <tr class="entry" id="dynamic_android.statistics.predictedColorGains">
15244            <td class="entry_name" rowspan="3">
15245              android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Gains
15246            </td>
15247            <td class="entry_type">
15248                <span class="entry_type_name">float</span>
15249                <span class="entry_type_container">x</span>
15250
15251                <span class="entry_type_array">
15252                  4
15253                </span>
15254              <span class="entry_type_visibility"> [hidden]</span>
15255                <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
15256
15257
15258            </td> <!-- entry_type -->
15259
15260            <td class="entry_description">
15261              <p>The best-fit color channel gains calculated
15262by the camera device's statistics units for the current output frame.<wbr/></p>
15263            </td>
15264
15265            <td class="entry_units">
15266            </td>
15267
15268            <td class="entry_range">
15269              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
15270            </td>
15271
15272            <td class="entry_tags">
15273            </td>
15274
15275          </tr>
15276          <tr class="entries_header">
15277            <th class="th_details" colspan="5">Details</th>
15278          </tr>
15279          <tr class="entry_cont">
15280            <td class="entry_details" colspan="5">
15281              <p>This may be different than the gains used for this frame,<wbr/>
15282since statistics processing on data from a new frame
15283typically completes after the transform has already been
15284applied to that frame.<wbr/></p>
15285<p>The 4 channel gains are defined in Bayer domain,<wbr/>
15286see <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> for details.<wbr/></p>
15287<p>This value should always be calculated by the AWB block,<wbr/>
15288regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
15289            </td>
15290          </tr>
15291
15292
15293          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15294           <!-- end of entry -->
15295        
15296                
15297          <tr class="entry" id="dynamic_android.statistics.predictedColorTransform">
15298            <td class="entry_name" rowspan="3">
15299              android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Transform
15300            </td>
15301            <td class="entry_type">
15302                <span class="entry_type_name">rational</span>
15303                <span class="entry_type_container">x</span>
15304
15305                <span class="entry_type_array">
15306                  3 x 3
15307                </span>
15308              <span class="entry_type_visibility"> [hidden]</span>
15309                <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
15310
15311
15312            </td> <!-- entry_type -->
15313
15314            <td class="entry_description">
15315              <p>The best-fit color transform matrix estimate
15316calculated by the camera device's statistics units for the current
15317output frame.<wbr/></p>
15318            </td>
15319
15320            <td class="entry_units">
15321            </td>
15322
15323            <td class="entry_range">
15324              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
15325            </td>
15326
15327            <td class="entry_tags">
15328            </td>
15329
15330          </tr>
15331          <tr class="entries_header">
15332            <th class="th_details" colspan="5">Details</th>
15333          </tr>
15334          <tr class="entry_cont">
15335            <td class="entry_details" colspan="5">
15336              <p>The camera device will provide the estimate from its
15337statistics unit on the white balance transforms to use
15338for the next frame.<wbr/> These are the values the camera device believes
15339are the best fit for the current output frame.<wbr/> This may
15340be different than the transform used for this frame,<wbr/> since
15341statistics processing on data from a new frame typically
15342completes after the transform has already been applied to
15343that frame.<wbr/></p>
15344<p>These estimates must be provided for all frames,<wbr/> even if
15345capture settings and color transforms are set by the application.<wbr/></p>
15346<p>This value should always be calculated by the AWB block,<wbr/>
15347regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
15348            </td>
15349          </tr>
15350
15351
15352          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15353           <!-- end of entry -->
15354        
15355                
15356          <tr class="entry" id="dynamic_android.statistics.sceneFlicker">
15357            <td class="entry_name" rowspan="3">
15358              android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker
15359            </td>
15360            <td class="entry_type">
15361                <span class="entry_type_name entry_type_name_enum">byte</span>
15362
15363              <span class="entry_type_visibility"> [public]</span>
15364
15365                <ul class="entry_type_enum">
15366                  <li>
15367                    <span class="entry_type_enum_name">NONE</span>
15368                  </li>
15369                  <li>
15370                    <span class="entry_type_enum_name">50HZ</span>
15371                  </li>
15372                  <li>
15373                    <span class="entry_type_enum_name">60HZ</span>
15374                  </li>
15375                </ul>
15376
15377            </td> <!-- entry_type -->
15378
15379            <td class="entry_description">
15380              <p>The camera device estimated scene illumination lighting
15381frequency.<wbr/></p>
15382            </td>
15383
15384            <td class="entry_units">
15385            </td>
15386
15387            <td class="entry_range">
15388            </td>
15389
15390            <td class="entry_tags">
15391            </td>
15392
15393          </tr>
15394          <tr class="entries_header">
15395            <th class="th_details" colspan="5">Details</th>
15396          </tr>
15397          <tr class="entry_cont">
15398            <td class="entry_details" colspan="5">
15399              <p>Many light sources,<wbr/> such as most fluorescent lights,<wbr/> flicker at a rate
15400that depends on the local utility power standards.<wbr/> This flicker must be
15401accounted for by auto-exposure routines to avoid artifacts in captured images.<wbr/>
15402The camera device uses this entry to tell the application what the scene
15403illuminant frequency is.<wbr/></p>
15404<p>When manual exposure control is enabled
15405(<code><a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> == OFF</code> or <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == OFF</code>),<wbr/>
15406the <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> doesn't do the antibanding,<wbr/> and the
15407application can ensure it selects exposure times that do not cause banding
15408issues by looking into this metadata field.<wbr/> See <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a>
15409for more details.<wbr/></p>
15410<p>Report NONE if there doesn't appear to be flickering illumination.<wbr/></p>
15411            </td>
15412          </tr>
15413
15414
15415          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15416           <!-- end of entry -->
15417        
15418                
15419          <tr class="entry" id="dynamic_android.statistics.hotPixelMapMode">
15420            <td class="entry_name" rowspan="3">
15421              android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map<wbr/>Mode
15422            </td>
15423            <td class="entry_type">
15424                <span class="entry_type_name entry_type_name_enum">byte</span>
15425
15426              <span class="entry_type_visibility"> [public as boolean]</span>
15427
15428                <ul class="entry_type_enum">
15429                  <li>
15430                    <span class="entry_type_enum_name">OFF</span>
15431                  </li>
15432                  <li>
15433                    <span class="entry_type_enum_name">ON</span>
15434                  </li>
15435                </ul>
15436
15437            </td> <!-- entry_type -->
15438
15439            <td class="entry_description">
15440              <p>Operating mode for hotpixel map generation.<wbr/></p>
15441            </td>
15442
15443            <td class="entry_units">
15444            </td>
15445
15446            <td class="entry_range">
15447            </td>
15448
15449            <td class="entry_tags">
15450              <ul class="entry_tags">
15451                  <li><a href="#tag_V1">V1</a></li>
15452                  <li><a href="#tag_DNG">DNG</a></li>
15453              </ul>
15454            </td>
15455
15456          </tr>
15457          <tr class="entries_header">
15458            <th class="th_details" colspan="5">Details</th>
15459          </tr>
15460          <tr class="entry_cont">
15461            <td class="entry_details" colspan="5">
15462              <p>If set to ON,<wbr/> a hotpixel map is returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/>
15463If set to OFF,<wbr/> no hotpixel map should be returned.<wbr/></p>
15464<p>This must be set to a valid mode from <a href="#static_android.statistics.info.availableHotPixelMapModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Map<wbr/>Modes</a>.<wbr/></p>
15465            </td>
15466          </tr>
15467
15468
15469          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15470           <!-- end of entry -->
15471        
15472                
15473          <tr class="entry" id="dynamic_android.statistics.hotPixelMap">
15474            <td class="entry_name" rowspan="5">
15475              android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map
15476            </td>
15477            <td class="entry_type">
15478                <span class="entry_type_name">int32</span>
15479                <span class="entry_type_container">x</span>
15480
15481                <span class="entry_type_array">
15482                  2 x n
15483                </span>
15484              <span class="entry_type_visibility"> [public]</span>
15485                <div class="entry_type_notes">list of coordinates based on android.<wbr/>sensor.<wbr/>pixel<wbr/>Array<wbr/>Size</div>
15486
15487
15488            </td> <!-- entry_type -->
15489
15490            <td class="entry_description">
15491              <p>List of <code>(x,<wbr/> y)</code> coordinates of hot/<wbr/>defective pixels on the sensor.<wbr/></p>
15492            </td>
15493
15494            <td class="entry_units">
15495            </td>
15496
15497            <td class="entry_range">
15498              <p>n &lt;= number of pixels on the sensor.<wbr/>
15499The <code>(x,<wbr/> y)</code> coordinates must be bounded by
15500<a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/></p>
15501            </td>
15502
15503            <td class="entry_tags">
15504              <ul class="entry_tags">
15505                  <li><a href="#tag_V1">V1</a></li>
15506                  <li><a href="#tag_DNG">DNG</a></li>
15507              </ul>
15508            </td>
15509
15510          </tr>
15511          <tr class="entries_header">
15512            <th class="th_details" colspan="5">Details</th>
15513          </tr>
15514          <tr class="entry_cont">
15515            <td class="entry_details" colspan="5">
15516              <p>A coordinate <code>(x,<wbr/> y)</code> must lie between <code>(0,<wbr/> 0)</code>,<wbr/> and
15517<code>(width - 1,<wbr/> height - 1)</code> (inclusive),<wbr/> which are the top-left and
15518bottom-right of the pixel array,<wbr/> respectively.<wbr/> The width and
15519height dimensions are given in <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/>
15520This may include hot pixels that lie outside of the active array
15521bounds given by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
15522            </td>
15523          </tr>
15524
15525          <tr class="entries_header">
15526            <th class="th_details" colspan="5">HAL Implementation Details</th>
15527          </tr>
15528          <tr class="entry_cont">
15529            <td class="entry_details" colspan="5">
15530              <p>A hotpixel map contains the coordinates of pixels on the camera
15531sensor that do report valid values (usually due to defects in
15532the camera sensor).<wbr/> This includes pixels that are stuck at certain
15533values,<wbr/> or have a response that does not accuractly encode the
15534incoming light from the scene.<wbr/></p>
15535<p>To avoid performance issues,<wbr/> there should be significantly fewer hot
15536pixels than actual pixels on the camera sensor.<wbr/></p>
15537            </td>
15538          </tr>
15539
15540          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15541           <!-- end of entry -->
15542        
15543        
15544
15545      <!-- end of kind -->
15546      </tbody>
15547
15548  <!-- end of section -->
15549  <tr><td colspan="6" id="section_tonemap" class="section">tonemap</td></tr>
15550
15551
15552      <tr><td colspan="6" class="kind">controls</td></tr>
15553
15554      <thead class="entries_header">
15555        <tr>
15556          <th class="th_name">Property Name</th>
15557          <th class="th_type">Type</th>
15558          <th class="th_description">Description</th>
15559          <th class="th_units">Units</th>
15560          <th class="th_range">Range</th>
15561          <th class="th_tags">Tags</th>
15562        </tr>
15563      </thead>
15564
15565      <tbody>
15566
15567        
15568
15569        
15570
15571        
15572
15573        
15574
15575                
15576          <tr class="entry" id="controls_android.tonemap.curveBlue">
15577            <td class="entry_name" rowspan="3">
15578              android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
15579            </td>
15580            <td class="entry_type">
15581                <span class="entry_type_name">float</span>
15582                <span class="entry_type_container">x</span>
15583
15584                <span class="entry_type_array">
15585                  n x 2
15586                </span>
15587              <span class="entry_type_visibility"> [public]</span>
15588                <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>
15589
15590
15591            </td> <!-- entry_type -->
15592
15593            <td class="entry_description">
15594              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
15595channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
15596CONTRAST_<wbr/>CURVE.<wbr/></p>
15597            </td>
15598
15599            <td class="entry_units">
15600              same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
15601            </td>
15602
15603            <td class="entry_range">
15604              <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p>
15605            </td>
15606
15607            <td class="entry_tags">
15608            </td>
15609
15610          </tr>
15611          <tr class="entries_header">
15612            <th class="th_details" colspan="5">Details</th>
15613          </tr>
15614          <tr class="entry_cont">
15615            <td class="entry_details" colspan="5">
15616              <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
15617            </td>
15618          </tr>
15619
15620
15621          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15622           <!-- end of entry -->
15623        
15624                
15625          <tr class="entry" id="controls_android.tonemap.curveGreen">
15626            <td class="entry_name" rowspan="3">
15627              android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
15628            </td>
15629            <td class="entry_type">
15630                <span class="entry_type_name">float</span>
15631                <span class="entry_type_container">x</span>
15632
15633                <span class="entry_type_array">
15634                  n x 2
15635                </span>
15636              <span class="entry_type_visibility"> [public]</span>
15637                <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>
15638
15639
15640            </td> <!-- entry_type -->
15641
15642            <td class="entry_description">
15643              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
15644channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
15645CONTRAST_<wbr/>CURVE.<wbr/></p>
15646            </td>
15647
15648            <td class="entry_units">
15649              same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
15650            </td>
15651
15652            <td class="entry_range">
15653              <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p>
15654            </td>
15655
15656            <td class="entry_tags">
15657            </td>
15658
15659          </tr>
15660          <tr class="entries_header">
15661            <th class="th_details" colspan="5">Details</th>
15662          </tr>
15663          <tr class="entry_cont">
15664            <td class="entry_details" colspan="5">
15665              <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
15666            </td>
15667          </tr>
15668
15669
15670          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15671           <!-- end of entry -->
15672        
15673                
15674          <tr class="entry" id="controls_android.tonemap.curveRed">
15675            <td class="entry_name" rowspan="5">
15676              android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
15677            </td>
15678            <td class="entry_type">
15679                <span class="entry_type_name">float</span>
15680                <span class="entry_type_container">x</span>
15681
15682                <span class="entry_type_array">
15683                  n x 2
15684                </span>
15685              <span class="entry_type_visibility"> [public]</span>
15686                <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>
15687
15688
15689            </td> <!-- entry_type -->
15690
15691            <td class="entry_description">
15692              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
15693channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
15694CONTRAST_<wbr/>CURVE.<wbr/></p>
15695            </td>
15696
15697            <td class="entry_units">
15698            </td>
15699
15700            <td class="entry_range">
15701              <p>0-1 on both input and output coordinates,<wbr/> normalized
15702as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
15703            </td>
15704
15705            <td class="entry_tags">
15706            </td>
15707
15708          </tr>
15709          <tr class="entries_header">
15710            <th class="th_details" colspan="5">Details</th>
15711          </tr>
15712          <tr class="entry_cont">
15713            <td class="entry_details" colspan="5">
15714              <p>Each channel's curve is defined by an array of control points:</p>
15715<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
15716  [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
157172 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
15718<p>These are sorted in order of increasing <code>Pin</code>; it is always
15719guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
15720define a complete mapping.<wbr/> For input values between control points,<wbr/>
15721the camera device must linearly interpolate between the control
15722points.<wbr/></p>
15723<p>Each curve can have an independent number of points,<wbr/> and the number
15724of points can be less than max (that is,<wbr/> the request doesn't have to
15725always provide a curve with number of points equivalent to
15726<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
15727<p>A few examples,<wbr/> and their corresponding graphical mappings; these
15728only specify the red channel and the precision is limited to 4
15729digits,<wbr/> for conciseness.<wbr/></p>
15730<p>Linear mapping:</p>
15731<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [ 0,<wbr/> 0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0 ]
15732</code></pre>
15733<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
15734<p>Invert mapping:</p>
15735<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [ 0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 0 ]
15736</code></pre>
15737<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
15738<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
15739<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
15740  0.<wbr/>0000,<wbr/> 0.<wbr/>0000,<wbr/> 0.<wbr/>0667,<wbr/> 0.<wbr/>2920,<wbr/> 0.<wbr/>1333,<wbr/> 0.<wbr/>4002,<wbr/> 0.<wbr/>2000,<wbr/> 0.<wbr/>4812,<wbr/>
15741  0.<wbr/>2667,<wbr/> 0.<wbr/>5484,<wbr/> 0.<wbr/>3333,<wbr/> 0.<wbr/>6069,<wbr/> 0.<wbr/>4000,<wbr/> 0.<wbr/>6594,<wbr/> 0.<wbr/>4667,<wbr/> 0.<wbr/>7072,<wbr/>
15742  0.<wbr/>5333,<wbr/> 0.<wbr/>7515,<wbr/> 0.<wbr/>6000,<wbr/> 0.<wbr/>7928,<wbr/> 0.<wbr/>6667,<wbr/> 0.<wbr/>8317,<wbr/> 0.<wbr/>7333,<wbr/> 0.<wbr/>8685,<wbr/>
15743  0.<wbr/>8000,<wbr/> 0.<wbr/>9035,<wbr/> 0.<wbr/>8667,<wbr/> 0.<wbr/>9370,<wbr/> 0.<wbr/>9333,<wbr/> 0.<wbr/>9691,<wbr/> 1.<wbr/>0000,<wbr/> 1.<wbr/>0000 ]
15744</code></pre>
15745<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
15746<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
15747<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
15748  0.<wbr/>0000,<wbr/> 0.<wbr/>0000,<wbr/> 0.<wbr/>0667,<wbr/> 0.<wbr/>2864,<wbr/> 0.<wbr/>1333,<wbr/> 0.<wbr/>4007,<wbr/> 0.<wbr/>2000,<wbr/> 0.<wbr/>4845,<wbr/>
15749  0.<wbr/>2667,<wbr/> 0.<wbr/>5532,<wbr/> 0.<wbr/>3333,<wbr/> 0.<wbr/>6125,<wbr/> 0.<wbr/>4000,<wbr/> 0.<wbr/>6652,<wbr/> 0.<wbr/>4667,<wbr/> 0.<wbr/>7130,<wbr/>
15750  0.<wbr/>5333,<wbr/> 0.<wbr/>7569,<wbr/> 0.<wbr/>6000,<wbr/> 0.<wbr/>7977,<wbr/> 0.<wbr/>6667,<wbr/> 0.<wbr/>8360,<wbr/> 0.<wbr/>7333,<wbr/> 0.<wbr/>8721,<wbr/>
15751  0.<wbr/>8000,<wbr/> 0.<wbr/>9063,<wbr/> 0.<wbr/>8667,<wbr/> 0.<wbr/>9389,<wbr/> 0.<wbr/>9333,<wbr/> 0.<wbr/>9701,<wbr/> 1.<wbr/>0000,<wbr/> 1.<wbr/>0000 ]
15752</code></pre>
15753<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
15754            </td>
15755          </tr>
15756
15757          <tr class="entries_header">
15758            <th class="th_details" colspan="5">HAL Implementation Details</th>
15759          </tr>
15760          <tr class="entry_cont">
15761            <td class="entry_details" colspan="5">
15762              <p>For good quality of mapping,<wbr/> at least 128 control points are
15763preferred.<wbr/></p>
15764<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
15765control points used as are available.<wbr/></p>
15766            </td>
15767          </tr>
15768
15769          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15770           <!-- end of entry -->
15771        
15772                
15773          <tr class="entry" id="controls_android.tonemap.mode">
15774            <td class="entry_name" rowspan="3">
15775              android.<wbr/>tonemap.<wbr/>mode
15776            </td>
15777            <td class="entry_type">
15778                <span class="entry_type_name entry_type_name_enum">byte</span>
15779
15780              <span class="entry_type_visibility"> [public]</span>
15781
15782                <ul class="entry_type_enum">
15783                  <li>
15784                    <span class="entry_type_enum_name">CONTRAST_CURVE</span>
15785                    <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
15786the android.<wbr/>tonemap.<wbr/>curve* entries.<wbr/></p>
15787<p>All color enhancement and tonemapping must be disabled,<wbr/> except
15788for applying the tonemapping curve specified by
15789<a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/> <a href="#controls_android.tonemap.curveBlue">android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue</a>,<wbr/> or
15790<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
15791<p>Must not slow down frame rate relative to raw
15792sensor output.<wbr/></p></span>
15793                  </li>
15794                  <li>
15795                    <span class="entry_type_enum_name">FAST</span>
15796                    <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
15797<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
15798                  </li>
15799                  <li>
15800                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
15801                    <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
15802<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
15803                  </li>
15804                </ul>
15805
15806            </td> <!-- entry_type -->
15807
15808            <td class="entry_description">
15809              <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
15810            </td>
15811
15812            <td class="entry_units">
15813            </td>
15814
15815            <td class="entry_range">
15816            </td>
15817
15818            <td class="entry_tags">
15819            </td>
15820
15821          </tr>
15822          <tr class="entries_header">
15823            <th class="th_details" colspan="5">Details</th>
15824          </tr>
15825          <tr class="entry_cont">
15826            <td class="entry_details" colspan="5">
15827              <p>When switching to an application-defined contrast curve by setting
15828<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
15829per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
15830mapping from input high-bit-depth pixel value to the output
15831low-bit-depth value.<wbr/>  Since the actual pixel ranges of both input
15832and output may change depending on the camera pipeline,<wbr/> the values
15833are specified by normalized floating-point numbers.<wbr/></p>
15834<p>More-complex color mapping operations such as 3D color look-up
15835tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
15836transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
15837CONTRAST_<wbr/>CURVE.<wbr/></p>
15838<p>This must be set to a valid mode in
15839<a href="#static_android.tonemap.availableToneMapModes">android.<wbr/>tonemap.<wbr/>available<wbr/>Tone<wbr/>Map<wbr/>Modes</a>.<wbr/></p>
15840<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
15841emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
15842<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>,<wbr/> and <a href="#controls_android.tonemap.curveBlue">android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue</a>.<wbr/>
15843These values are always available,<wbr/> and as close as possible to the
15844actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
15845<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
15846provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
15847roughly the same.<wbr/></p>
15848            </td>
15849          </tr>
15850
15851
15852          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15853           <!-- end of entry -->
15854        
15855        
15856
15857      <!-- end of kind -->
15858      </tbody>
15859      <tr><td colspan="6" class="kind">static</td></tr>
15860
15861      <thead class="entries_header">
15862        <tr>
15863          <th class="th_name">Property Name</th>
15864          <th class="th_type">Type</th>
15865          <th class="th_description">Description</th>
15866          <th class="th_units">Units</th>
15867          <th class="th_range">Range</th>
15868          <th class="th_tags">Tags</th>
15869        </tr>
15870      </thead>
15871
15872      <tbody>
15873
15874        
15875
15876        
15877
15878        
15879
15880        
15881
15882                
15883          <tr class="entry" id="static_android.tonemap.maxCurvePoints">
15884            <td class="entry_name" rowspan="5">
15885              android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points
15886            </td>
15887            <td class="entry_type">
15888                <span class="entry_type_name">int32</span>
15889
15890              <span class="entry_type_visibility"> [public]</span>
15891
15892
15893            </td> <!-- entry_type -->
15894
15895            <td class="entry_description">
15896              <p>Maximum number of supported points in the
15897tonemap curve that can be used for <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/> or
15898<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>,<wbr/> or <a href="#controls_android.tonemap.curveBlue">android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue</a>.<wbr/></p>
15899            </td>
15900
15901            <td class="entry_units">
15902            </td>
15903
15904            <td class="entry_range">
15905              <p>&gt;= 64</p>
15906            </td>
15907
15908            <td class="entry_tags">
15909            </td>
15910
15911          </tr>
15912          <tr class="entries_header">
15913            <th class="th_details" colspan="5">Details</th>
15914          </tr>
15915          <tr class="entry_cont">
15916            <td class="entry_details" colspan="5">
15917              <p>If the actual number of points provided by the application (in
15918android.<wbr/>tonemap.<wbr/>curve*)  is less than max,<wbr/> the camera device will
15919resample the curve to its internal representation,<wbr/> using linear
15920interpolation.<wbr/></p>
15921<p>The output curves in the result metadata may have a different number
15922of points than the input curves,<wbr/> and will represent the actual
15923hardware curves used as closely as possible when linearly interpolated.<wbr/></p>
15924            </td>
15925          </tr>
15926
15927          <tr class="entries_header">
15928            <th class="th_details" colspan="5">HAL Implementation Details</th>
15929          </tr>
15930          <tr class="entry_cont">
15931            <td class="entry_details" colspan="5">
15932              <p>This value must be at least 64.<wbr/> This should be at least 128.<wbr/></p>
15933            </td>
15934          </tr>
15935
15936          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15937           <!-- end of entry -->
15938        
15939                
15940          <tr class="entry" id="static_android.tonemap.availableToneMapModes">
15941            <td class="entry_name" rowspan="3">
15942              android.<wbr/>tonemap.<wbr/>available<wbr/>Tone<wbr/>Map<wbr/>Modes
15943            </td>
15944            <td class="entry_type">
15945                <span class="entry_type_name">byte</span>
15946                <span class="entry_type_container">x</span>
15947
15948                <span class="entry_type_array">
15949                  n
15950                </span>
15951              <span class="entry_type_visibility"> [public]</span>
15952                <div class="entry_type_notes">list of enums</div>
15953
15954
15955            </td> <!-- entry_type -->
15956
15957            <td class="entry_description">
15958              <p>The set of tonemapping modes supported by this camera device.<wbr/></p>
15959            </td>
15960
15961            <td class="entry_units">
15962            </td>
15963
15964            <td class="entry_range">
15965            </td>
15966
15967            <td class="entry_tags">
15968            </td>
15969
15970          </tr>
15971          <tr class="entries_header">
15972            <th class="th_details" colspan="5">Details</th>
15973          </tr>
15974          <tr class="entry_cont">
15975            <td class="entry_details" colspan="5">
15976              <p>This tag lists the valid modes for <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a>.<wbr/></p>
15977<p>Full-capability camera devices must always support CONTRAST_<wbr/>CURVE and
15978FAST.<wbr/></p>
15979            </td>
15980          </tr>
15981
15982
15983          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15984           <!-- end of entry -->
15985        
15986        
15987
15988      <!-- end of kind -->
15989      </tbody>
15990      <tr><td colspan="6" class="kind">dynamic</td></tr>
15991
15992      <thead class="entries_header">
15993        <tr>
15994          <th class="th_name">Property Name</th>
15995          <th class="th_type">Type</th>
15996          <th class="th_description">Description</th>
15997          <th class="th_units">Units</th>
15998          <th class="th_range">Range</th>
15999          <th class="th_tags">Tags</th>
16000        </tr>
16001      </thead>
16002
16003      <tbody>
16004
16005        
16006
16007        
16008
16009        
16010
16011        
16012
16013                
16014          <tr class="entry" id="dynamic_android.tonemap.curveBlue">
16015            <td class="entry_name" rowspan="3">
16016              android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
16017            </td>
16018            <td class="entry_type">
16019                <span class="entry_type_name">float</span>
16020                <span class="entry_type_container">x</span>
16021
16022                <span class="entry_type_array">
16023                  n x 2
16024                </span>
16025              <span class="entry_type_visibility"> [public]</span>
16026                <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>
16027
16028
16029            </td> <!-- entry_type -->
16030
16031            <td class="entry_description">
16032              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
16033channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
16034CONTRAST_<wbr/>CURVE.<wbr/></p>
16035            </td>
16036
16037            <td class="entry_units">
16038              same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
16039            </td>
16040
16041            <td class="entry_range">
16042              <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p>
16043            </td>
16044
16045            <td class="entry_tags">
16046            </td>
16047
16048          </tr>
16049          <tr class="entries_header">
16050            <th class="th_details" colspan="5">Details</th>
16051          </tr>
16052          <tr class="entry_cont">
16053            <td class="entry_details" colspan="5">
16054              <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
16055            </td>
16056          </tr>
16057
16058
16059          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
16060           <!-- end of entry -->
16061        
16062                
16063          <tr class="entry" id="dynamic_android.tonemap.curveGreen">
16064            <td class="entry_name" rowspan="3">
16065              android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
16066            </td>
16067            <td class="entry_type">
16068                <span class="entry_type_name">float</span>
16069                <span class="entry_type_container">x</span>
16070
16071                <span class="entry_type_array">
16072                  n x 2
16073                </span>
16074              <span class="entry_type_visibility"> [public]</span>
16075                <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>
16076
16077
16078            </td> <!-- entry_type -->
16079
16080            <td class="entry_description">
16081              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
16082channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
16083CONTRAST_<wbr/>CURVE.<wbr/></p>
16084            </td>
16085
16086            <td class="entry_units">
16087              same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
16088            </td>
16089
16090            <td class="entry_range">
16091              <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p>
16092            </td>
16093
16094            <td class="entry_tags">
16095            </td>
16096
16097          </tr>
16098          <tr class="entries_header">
16099            <th class="th_details" colspan="5">Details</th>
16100          </tr>
16101          <tr class="entry_cont">
16102            <td class="entry_details" colspan="5">
16103              <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
16104            </td>
16105          </tr>
16106
16107
16108          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
16109           <!-- end of entry -->
16110        
16111                
16112          <tr class="entry" id="dynamic_android.tonemap.curveRed">
16113            <td class="entry_name" rowspan="5">
16114              android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
16115            </td>
16116            <td class="entry_type">
16117                <span class="entry_type_name">float</span>
16118                <span class="entry_type_container">x</span>
16119
16120                <span class="entry_type_array">
16121                  n x 2
16122                </span>
16123              <span class="entry_type_visibility"> [public]</span>
16124                <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>
16125
16126
16127            </td> <!-- entry_type -->
16128
16129            <td class="entry_description">
16130              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
16131channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
16132CONTRAST_<wbr/>CURVE.<wbr/></p>
16133            </td>
16134
16135            <td class="entry_units">
16136            </td>
16137
16138            <td class="entry_range">
16139              <p>0-1 on both input and output coordinates,<wbr/> normalized
16140as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
16141            </td>
16142
16143            <td class="entry_tags">
16144            </td>
16145
16146          </tr>
16147          <tr class="entries_header">
16148            <th class="th_details" colspan="5">Details</th>
16149          </tr>
16150          <tr class="entry_cont">
16151            <td class="entry_details" colspan="5">
16152              <p>Each channel's curve is defined by an array of control points:</p>
16153<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
16154  [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
161552 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
16156<p>These are sorted in order of increasing <code>Pin</code>; it is always
16157guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
16158define a complete mapping.<wbr/> For input values between control points,<wbr/>
16159the camera device must linearly interpolate between the control
16160points.<wbr/></p>
16161<p>Each curve can have an independent number of points,<wbr/> and the number
16162of points can be less than max (that is,<wbr/> the request doesn't have to
16163always provide a curve with number of points equivalent to
16164<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
16165<p>A few examples,<wbr/> and their corresponding graphical mappings; these
16166only specify the red channel and the precision is limited to 4
16167digits,<wbr/> for conciseness.<wbr/></p>
16168<p>Linear mapping:</p>
16169<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [ 0,<wbr/> 0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0 ]
16170</code></pre>
16171<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
16172<p>Invert mapping:</p>
16173<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [ 0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 0 ]
16174</code></pre>
16175<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
16176<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
16177<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
16178  0.<wbr/>0000,<wbr/> 0.<wbr/>0000,<wbr/> 0.<wbr/>0667,<wbr/> 0.<wbr/>2920,<wbr/> 0.<wbr/>1333,<wbr/> 0.<wbr/>4002,<wbr/> 0.<wbr/>2000,<wbr/> 0.<wbr/>4812,<wbr/>
16179  0.<wbr/>2667,<wbr/> 0.<wbr/>5484,<wbr/> 0.<wbr/>3333,<wbr/> 0.<wbr/>6069,<wbr/> 0.<wbr/>4000,<wbr/> 0.<wbr/>6594,<wbr/> 0.<wbr/>4667,<wbr/> 0.<wbr/>7072,<wbr/>
16180  0.<wbr/>5333,<wbr/> 0.<wbr/>7515,<wbr/> 0.<wbr/>6000,<wbr/> 0.<wbr/>7928,<wbr/> 0.<wbr/>6667,<wbr/> 0.<wbr/>8317,<wbr/> 0.<wbr/>7333,<wbr/> 0.<wbr/>8685,<wbr/>
16181  0.<wbr/>8000,<wbr/> 0.<wbr/>9035,<wbr/> 0.<wbr/>8667,<wbr/> 0.<wbr/>9370,<wbr/> 0.<wbr/>9333,<wbr/> 0.<wbr/>9691,<wbr/> 1.<wbr/>0000,<wbr/> 1.<wbr/>0000 ]
16182</code></pre>
16183<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
16184<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
16185<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
16186  0.<wbr/>0000,<wbr/> 0.<wbr/>0000,<wbr/> 0.<wbr/>0667,<wbr/> 0.<wbr/>2864,<wbr/> 0.<wbr/>1333,<wbr/> 0.<wbr/>4007,<wbr/> 0.<wbr/>2000,<wbr/> 0.<wbr/>4845,<wbr/>
16187  0.<wbr/>2667,<wbr/> 0.<wbr/>5532,<wbr/> 0.<wbr/>3333,<wbr/> 0.<wbr/>6125,<wbr/> 0.<wbr/>4000,<wbr/> 0.<wbr/>6652,<wbr/> 0.<wbr/>4667,<wbr/> 0.<wbr/>7130,<wbr/>
16188  0.<wbr/>5333,<wbr/> 0.<wbr/>7569,<wbr/> 0.<wbr/>6000,<wbr/> 0.<wbr/>7977,<wbr/> 0.<wbr/>6667,<wbr/> 0.<wbr/>8360,<wbr/> 0.<wbr/>7333,<wbr/> 0.<wbr/>8721,<wbr/>
16189  0.<wbr/>8000,<wbr/> 0.<wbr/>9063,<wbr/> 0.<wbr/>8667,<wbr/> 0.<wbr/>9389,<wbr/> 0.<wbr/>9333,<wbr/> 0.<wbr/>9701,<wbr/> 1.<wbr/>0000,<wbr/> 1.<wbr/>0000 ]
16190</code></pre>
16191<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
16192            </td>
16193          </tr>
16194
16195          <tr class="entries_header">
16196            <th class="th_details" colspan="5">HAL Implementation Details</th>
16197          </tr>
16198          <tr class="entry_cont">
16199            <td class="entry_details" colspan="5">
16200              <p>For good quality of mapping,<wbr/> at least 128 control points are
16201preferred.<wbr/></p>
16202<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
16203control points used as are available.<wbr/></p>
16204            </td>
16205          </tr>
16206
16207          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
16208           <!-- end of entry -->
16209        
16210                
16211          <tr class="entry" id="dynamic_android.tonemap.mode">
16212            <td class="entry_name" rowspan="3">
16213              android.<wbr/>tonemap.<wbr/>mode
16214            </td>
16215            <td class="entry_type">
16216                <span class="entry_type_name entry_type_name_enum">byte</span>
16217
16218              <span class="entry_type_visibility"> [public]</span>
16219
16220                <ul class="entry_type_enum">
16221                  <li>
16222                    <span class="entry_type_enum_name">CONTRAST_CURVE</span>
16223                    <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
16224the android.<wbr/>tonemap.<wbr/>curve* entries.<wbr/></p>
16225<p>All color enhancement and tonemapping must be disabled,<wbr/> except
16226for applying the tonemapping curve specified by
16227<a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/> <a href="#controls_android.tonemap.curveBlue">android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue</a>,<wbr/> or
16228<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
16229<p>Must not slow down frame rate relative to raw
16230sensor output.<wbr/></p></span>
16231                  </li>
16232                  <li>
16233                    <span class="entry_type_enum_name">FAST</span>
16234                    <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
16235<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
16236                  </li>
16237                  <li>
16238                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
16239                    <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
16240<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
16241                  </li>
16242                </ul>
16243
16244            </td> <!-- entry_type -->
16245
16246            <td class="entry_description">
16247              <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
16248            </td>
16249
16250            <td class="entry_units">
16251            </td>
16252
16253            <td class="entry_range">
16254            </td>
16255
16256            <td class="entry_tags">
16257            </td>
16258
16259          </tr>
16260          <tr class="entries_header">
16261            <th class="th_details" colspan="5">Details</th>
16262          </tr>
16263          <tr class="entry_cont">
16264            <td class="entry_details" colspan="5">
16265              <p>When switching to an application-defined contrast curve by setting
16266<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
16267per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
16268mapping from input high-bit-depth pixel value to the output
16269low-bit-depth value.<wbr/>  Since the actual pixel ranges of both input
16270and output may change depending on the camera pipeline,<wbr/> the values
16271are specified by normalized floating-point numbers.<wbr/></p>
16272<p>More-complex color mapping operations such as 3D color look-up
16273tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
16274transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
16275CONTRAST_<wbr/>CURVE.<wbr/></p>
16276<p>This must be set to a valid mode in
16277<a href="#static_android.tonemap.availableToneMapModes">android.<wbr/>tonemap.<wbr/>available<wbr/>Tone<wbr/>Map<wbr/>Modes</a>.<wbr/></p>
16278<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
16279emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
16280<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>,<wbr/> and <a href="#controls_android.tonemap.curveBlue">android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue</a>.<wbr/>
16281These values are always available,<wbr/> and as close as possible to the
16282actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
16283<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
16284provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
16285roughly the same.<wbr/></p>
16286            </td>
16287          </tr>
16288
16289
16290          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
16291           <!-- end of entry -->
16292        
16293        
16294
16295      <!-- end of kind -->
16296      </tbody>
16297
16298  <!-- end of section -->
16299  <tr><td colspan="6" id="section_led" class="section">led</td></tr>
16300
16301
16302      <tr><td colspan="6" class="kind">controls</td></tr>
16303
16304      <thead class="entries_header">
16305        <tr>
16306          <th class="th_name">Property Name</th>
16307          <th class="th_type">Type</th>
16308          <th class="th_description">Description</th>
16309          <th class="th_units">Units</th>
16310          <th class="th_range">Range</th>
16311          <th class="th_tags">Tags</th>
16312        </tr>
16313      </thead>
16314
16315      <tbody>
16316
16317        
16318
16319        
16320
16321        
16322
16323        
16324
16325                
16326          <tr class="entry" id="controls_android.led.transmit">
16327            <td class="entry_name" rowspan="1">
16328              android.<wbr/>led.<wbr/>transmit
16329            </td>
16330            <td class="entry_type">
16331                <span class="entry_type_name entry_type_name_enum">byte</span>
16332
16333              <span class="entry_type_visibility"> [hidden as boolean]</span>
16334
16335                <ul class="entry_type_enum">
16336                  <li>
16337                    <span class="entry_type_enum_name">OFF</span>
16338                  </li>
16339                  <li>
16340                    <span class="entry_type_enum_name">ON</span>
16341                  </li>
16342                </ul>
16343
16344            </td> <!-- entry_type -->
16345
16346            <td class="entry_description">
16347              <p>This LED is nominally used to indicate to the user
16348that the camera is powered on and may be streaming images back to the
16349Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
16350disable this when video is processed locally and not transmitted to
16351any untrusted applications.<wbr/></p>
16352<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
16353transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
16354data is stored locally on the device.<wbr/></p>
16355<p>The LED <em>may</em> be off if a trusted application is using the data that
16356doesn't violate the above rules.<wbr/></p>
16357            </td>
16358
16359            <td class="entry_units">
16360            </td>
16361
16362            <td class="entry_range">
16363            </td>
16364
16365            <td class="entry_tags">
16366            </td>
16367
16368          </tr>
16369
16370
16371          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
16372           <!-- end of entry -->
16373        
16374        
16375
16376      <!-- end of kind -->
16377      </tbody>
16378      <tr><td colspan="6" class="kind">dynamic</td></tr>
16379
16380      <thead class="entries_header">
16381        <tr>
16382          <th class="th_name">Property Name</th>
16383          <th class="th_type">Type</th>
16384          <th class="th_description">Description</th>
16385          <th class="th_units">Units</th>
16386          <th class="th_range">Range</th>
16387          <th class="th_tags">Tags</th>
16388        </tr>
16389      </thead>
16390
16391      <tbody>
16392
16393        
16394
16395        
16396
16397        
16398
16399        
16400
16401                
16402          <tr class="entry" id="dynamic_android.led.transmit">
16403            <td class="entry_name" rowspan="1">
16404              android.<wbr/>led.<wbr/>transmit
16405            </td>
16406            <td class="entry_type">
16407                <span class="entry_type_name entry_type_name_enum">byte</span>
16408
16409              <span class="entry_type_visibility"> [hidden as boolean]</span>
16410
16411                <ul class="entry_type_enum">
16412                  <li>
16413                    <span class="entry_type_enum_name">OFF</span>
16414                  </li>
16415                  <li>
16416                    <span class="entry_type_enum_name">ON</span>
16417                  </li>
16418                </ul>
16419
16420            </td> <!-- entry_type -->
16421
16422            <td class="entry_description">
16423              <p>This LED is nominally used to indicate to the user
16424that the camera is powered on and may be streaming images back to the
16425Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
16426disable this when video is processed locally and not transmitted to
16427any untrusted applications.<wbr/></p>
16428<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
16429transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
16430data is stored locally on the device.<wbr/></p>
16431<p>The LED <em>may</em> be off if a trusted application is using the data that
16432doesn't violate the above rules.<wbr/></p>
16433            </td>
16434
16435            <td class="entry_units">
16436            </td>
16437
16438            <td class="entry_range">
16439            </td>
16440
16441            <td class="entry_tags">
16442            </td>
16443
16444          </tr>
16445
16446
16447          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
16448           <!-- end of entry -->
16449        
16450        
16451
16452      <!-- end of kind -->
16453      </tbody>
16454      <tr><td colspan="6" class="kind">static</td></tr>
16455
16456      <thead class="entries_header">
16457        <tr>
16458          <th class="th_name">Property Name</th>
16459          <th class="th_type">Type</th>
16460          <th class="th_description">Description</th>
16461          <th class="th_units">Units</th>
16462          <th class="th_range">Range</th>
16463          <th class="th_tags">Tags</th>
16464        </tr>
16465      </thead>
16466
16467      <tbody>
16468
16469        
16470
16471        
16472
16473        
16474
16475        
16476
16477                
16478          <tr class="entry" id="static_android.led.availableLeds">
16479            <td class="entry_name" rowspan="1">
16480              android.<wbr/>led.<wbr/>available<wbr/>Leds
16481            </td>
16482            <td class="entry_type">
16483                <span class="entry_type_name entry_type_name_enum">byte</span>
16484                <span class="entry_type_container">x</span>
16485
16486                <span class="entry_type_array">
16487                  n
16488                </span>
16489              <span class="entry_type_visibility"> [hidden]</span>
16490
16491                <ul class="entry_type_enum">
16492                  <li>
16493                    <span class="entry_type_enum_name">TRANSMIT</span>
16494                    <span class="entry_type_enum_notes"><p><a href="#controls_android.led.transmit">android.<wbr/>led.<wbr/>transmit</a> control is used</p></span>
16495                  </li>
16496                </ul>
16497
16498            </td> <!-- entry_type -->
16499
16500            <td class="entry_description">
16501              <p>A list of camera LEDs that are available on this system.<wbr/></p>
16502            </td>
16503
16504            <td class="entry_units">
16505            </td>
16506
16507            <td class="entry_range">
16508            </td>
16509
16510            <td class="entry_tags">
16511            </td>
16512
16513          </tr>
16514
16515
16516          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
16517           <!-- end of entry -->
16518        
16519        
16520
16521      <!-- end of kind -->
16522      </tbody>
16523
16524  <!-- end of section -->
16525  <tr><td colspan="6" id="section_info" class="section">info</td></tr>
16526
16527
16528      <tr><td colspan="6" class="kind">static</td></tr>
16529
16530      <thead class="entries_header">
16531        <tr>
16532          <th class="th_name">Property Name</th>
16533          <th class="th_type">Type</th>
16534          <th class="th_description">Description</th>
16535          <th class="th_units">Units</th>
16536          <th class="th_range">Range</th>
16537          <th class="th_tags">Tags</th>
16538        </tr>
16539      </thead>
16540
16541      <tbody>
16542
16543        
16544
16545        
16546
16547        
16548
16549        
16550
16551                
16552          <tr class="entry" id="static_android.info.supportedHardwareLevel">
16553            <td class="entry_name" rowspan="5">
16554              android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level
16555            </td>
16556            <td class="entry_type">
16557                <span class="entry_type_name entry_type_name_enum">byte</span>
16558
16559              <span class="entry_type_visibility"> [public]</span>
16560
16561                <ul class="entry_type_enum">
16562                  <li>
16563                    <span class="entry_type_enum_name">LIMITED</span>
16564                  </li>
16565                  <li>
16566                    <span class="entry_type_enum_name">FULL</span>
16567                  </li>
16568                </ul>
16569
16570            </td> <!-- entry_type -->
16571
16572            <td class="entry_description">
16573              <p>Generally classifies the overall set of the camera device functionality.<wbr/></p>
16574            </td>
16575
16576            <td class="entry_units">
16577            </td>
16578
16579            <td class="entry_range">
16580              <p>Optional.<wbr/> Default value is LIMITED.<wbr/></p>
16581            </td>
16582
16583            <td class="entry_tags">
16584            </td>
16585
16586          </tr>
16587          <tr class="entries_header">
16588            <th class="th_details" colspan="5">Details</th>
16589          </tr>
16590          <tr class="entry_cont">
16591            <td class="entry_details" colspan="5">
16592              <p>Camera devices will come in two flavors: LIMITED and FULL.<wbr/></p>
16593<p>A FULL device has the most support possible and will enable the
16594widest range of use cases such as:</p>
16595<ul>
16596<li>30 FPS at maximum resolution (== sensor resolution)</li>
16597<li>Per frame control</li>
16598<li>Manual sensor control</li>
16599<li>Zero Shutter Lag (ZSL)</li>
16600</ul>
16601<p>A LIMITED device may have some or none of the above characteristics.<wbr/>
16602To find out more refer to <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
16603            </td>
16604          </tr>
16605
16606          <tr class="entries_header">
16607            <th class="th_details" colspan="5">HAL Implementation Details</th>
16608          </tr>
16609          <tr class="entry_cont">
16610            <td class="entry_details" colspan="5">
16611              <p>The camera 3 HAL device can implement one of two possible
16612operational modes; limited and full.<wbr/> Full support is
16613expected from new higher-end devices.<wbr/> Limited mode has
16614hardware requirements roughly in line with those for a
16615camera HAL device v1 implementation,<wbr/> and is expected from
16616older or inexpensive devices.<wbr/> Full is a strict superset of
16617limited,<wbr/> and they share the same essential operational flow.<wbr/></p>
16618<p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p>
16619            </td>
16620          </tr>
16621
16622          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
16623           <!-- end of entry -->
16624        
16625        
16626
16627      <!-- end of kind -->
16628      </tbody>
16629
16630  <!-- end of section -->
16631  <tr><td colspan="6" id="section_blackLevel" class="section">blackLevel</td></tr>
16632
16633
16634      <tr><td colspan="6" class="kind">controls</td></tr>
16635
16636      <thead class="entries_header">
16637        <tr>
16638          <th class="th_name">Property Name</th>
16639          <th class="th_type">Type</th>
16640          <th class="th_description">Description</th>
16641          <th class="th_units">Units</th>
16642          <th class="th_range">Range</th>
16643          <th class="th_tags">Tags</th>
16644        </tr>
16645      </thead>
16646
16647      <tbody>
16648
16649        
16650
16651        
16652
16653        
16654
16655        
16656
16657                
16658          <tr class="entry" id="controls_android.blackLevel.lock">
16659            <td class="entry_name" rowspan="5">
16660              android.<wbr/>black<wbr/>Level.<wbr/>lock
16661            </td>
16662            <td class="entry_type">
16663                <span class="entry_type_name entry_type_name_enum">byte</span>
16664
16665              <span class="entry_type_visibility"> [public as boolean]</span>
16666
16667                <ul class="entry_type_enum">
16668                  <li>
16669                    <span class="entry_type_enum_name">OFF</span>
16670                  </li>
16671                  <li>
16672                    <span class="entry_type_enum_name">ON</span>
16673                  </li>
16674                </ul>
16675
16676            </td> <!-- entry_type -->
16677
16678            <td class="entry_description">
16679              <p>Whether black-level compensation is locked
16680to its current values,<wbr/> or is free to vary.<wbr/></p>
16681            </td>
16682
16683            <td class="entry_units">
16684            </td>
16685
16686            <td class="entry_range">
16687            </td>
16688
16689            <td class="entry_tags">
16690              <ul class="entry_tags">
16691                  <li><a href="#tag_HAL2">HAL2</a></li>
16692              </ul>
16693            </td>
16694
16695          </tr>
16696          <tr class="entries_header">
16697            <th class="th_details" colspan="5">Details</th>
16698          </tr>
16699          <tr class="entry_cont">
16700            <td class="entry_details" colspan="5">
16701              <p>When set to ON,<wbr/> the values used for black-level
16702compensation will not change until the lock is set to
16703OFF.<wbr/></p>
16704<p>Since changes to certain capture parameters (such as
16705exposure time) may require resetting of black level
16706compensation,<wbr/> the camera device must report whether setting
16707the black level lock was successful in the output result
16708metadata.<wbr/></p>
16709<p>For example,<wbr/> if a sequence of requests is as follows:</p>
16710<ul>
16711<li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
16712<li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
16713<li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
16714<li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li>
16715<li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
16716<li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
16717</ul>
16718<p>And the exposure change in Request 4 requires the camera
16719device to reset the black level offsets,<wbr/> then the output
16720result metadata is expected to be:</p>
16721<ul>
16722<li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
16723<li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
16724<li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
16725<li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li>
16726<li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
16727<li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
16728</ul>
16729<p>This indicates to the application that on frame 4,<wbr/> black
16730levels were reset due to exposure value changes,<wbr/> and pixel
16731values may not be consistent across captures.<wbr/></p>
16732<p>The camera device will maintain the lock to the extent
16733possible,<wbr/> only overriding the lock to OFF when changes to
16734other request parameters require a black level recalculation
16735or reset.<wbr/></p>
16736            </td>
16737          </tr>
16738
16739          <tr class="entries_header">
16740            <th class="th_details" colspan="5">HAL Implementation Details</th>
16741          </tr>
16742          <tr class="entry_cont">
16743            <td class="entry_details" colspan="5">
16744              <p>If for some reason black level locking is no longer possible
16745(for example,<wbr/> the analog gain has changed,<wbr/> which forces
16746black level offsets to be recalculated),<wbr/> then the HAL must
16747override this request (and it must report 'OFF' when this
16748does happen) until the next capture for which locking is
16749possible again.<wbr/></p>
16750            </td>
16751          </tr>
16752
16753          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
16754           <!-- end of entry -->
16755        
16756        
16757
16758      <!-- end of kind -->
16759      </tbody>
16760      <tr><td colspan="6" class="kind">dynamic</td></tr>
16761
16762      <thead class="entries_header">
16763        <tr>
16764          <th class="th_name">Property Name</th>
16765          <th class="th_type">Type</th>
16766          <th class="th_description">Description</th>
16767          <th class="th_units">Units</th>
16768          <th class="th_range">Range</th>
16769          <th class="th_tags">Tags</th>
16770        </tr>
16771      </thead>
16772
16773      <tbody>
16774
16775        
16776
16777        
16778
16779        
16780
16781        
16782
16783                
16784          <tr class="entry" id="dynamic_android.blackLevel.lock">
16785            <td class="entry_name" rowspan="5">
16786              android.<wbr/>black<wbr/>Level.<wbr/>lock
16787            </td>
16788            <td class="entry_type">
16789                <span class="entry_type_name entry_type_name_enum">byte</span>
16790
16791              <span class="entry_type_visibility"> [public as boolean]</span>
16792
16793                <ul class="entry_type_enum">
16794                  <li>
16795                    <span class="entry_type_enum_name">OFF</span>
16796                  </li>
16797                  <li>
16798                    <span class="entry_type_enum_name">ON</span>
16799                  </li>
16800                </ul>
16801
16802            </td> <!-- entry_type -->
16803
16804            <td class="entry_description">
16805              <p>Whether black-level compensation is locked
16806to its current values,<wbr/> or is free to vary.<wbr/></p>
16807            </td>
16808
16809            <td class="entry_units">
16810            </td>
16811
16812            <td class="entry_range">
16813            </td>
16814
16815            <td class="entry_tags">
16816              <ul class="entry_tags">
16817                  <li><a href="#tag_HAL2">HAL2</a></li>
16818              </ul>
16819            </td>
16820
16821          </tr>
16822          <tr class="entries_header">
16823            <th class="th_details" colspan="5">Details</th>
16824          </tr>
16825          <tr class="entry_cont">
16826            <td class="entry_details" colspan="5">
16827              <p>Whether the black level offset was locked for this frame.<wbr/>  Should be
16828ON if <a href="#controls_android.blackLevel.lock">android.<wbr/>black<wbr/>Level.<wbr/>lock</a> was ON in the capture request,<wbr/> unless
16829a change in other capture settings forced the camera device to
16830perform a black level reset.<wbr/></p>
16831            </td>
16832          </tr>
16833
16834          <tr class="entries_header">
16835            <th class="th_details" colspan="5">HAL Implementation Details</th>
16836          </tr>
16837          <tr class="entry_cont">
16838            <td class="entry_details" colspan="5">
16839              <p>If for some reason black level locking is no longer possible
16840(for example,<wbr/> the analog gain has changed,<wbr/> which forces
16841black level offsets to be recalculated),<wbr/> then the HAL must
16842override this request (and it must report 'OFF' when this
16843does happen) until the next capture for which locking is
16844possible again.<wbr/></p>
16845            </td>
16846          </tr>
16847
16848          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
16849           <!-- end of entry -->
16850        
16851        
16852
16853      <!-- end of kind -->
16854      </tbody>
16855
16856  <!-- end of section -->
16857  <tr><td colspan="6" id="section_sync" class="section">sync</td></tr>
16858
16859
16860      <tr><td colspan="6" class="kind">dynamic</td></tr>
16861
16862      <thead class="entries_header">
16863        <tr>
16864          <th class="th_name">Property Name</th>
16865          <th class="th_type">Type</th>
16866          <th class="th_description">Description</th>
16867          <th class="th_units">Units</th>
16868          <th class="th_range">Range</th>
16869          <th class="th_tags">Tags</th>
16870        </tr>
16871      </thead>
16872
16873      <tbody>
16874
16875        
16876
16877        
16878
16879        
16880
16881        
16882
16883                
16884          <tr class="entry" id="dynamic_android.sync.frameNumber">
16885            <td class="entry_name" rowspan="5">
16886              android.<wbr/>sync.<wbr/>frame<wbr/>Number
16887            </td>
16888            <td class="entry_type">
16889                <span class="entry_type_name entry_type_name_enum">int64</span>
16890
16891              <span class="entry_type_visibility"> [hidden]</span>
16892
16893                <ul class="entry_type_enum">
16894                  <li>
16895                    <span class="entry_type_enum_name">CONVERGING</span>
16896                    <span class="entry_type_enum_value">-1</span>
16897                    <span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/>
16898Synchronization is in progress,<wbr/> and reading metadata from this
16899result may include a mix of data that have taken effect since the
16900last synchronization time.<wbr/></p>
16901<p>In some future result,<wbr/> within <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> frames,<wbr/>
16902this value will update to the actual frame number frame number
16903the result is guaranteed to be synchronized to (as long as the
16904request settings remain constant).<wbr/></p></span>
16905                  </li>
16906                  <li>
16907                    <span class="entry_type_enum_name">UNKNOWN</span>
16908                    <span class="entry_type_enum_value">-2</span>
16909                    <span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/> The
16910result may have already converged,<wbr/> or it may be in progress.<wbr/>
16911Reading from this result may include some mix of settings from
16912past requests.<wbr/></p>
16913<p>After a settings change,<wbr/> the new settings will eventually all
16914take effect for the output buffers and results.<wbr/> However,<wbr/> this
16915value will not change when that happens.<wbr/> Altering settings
16916rapidly may provide outcomes using mixes of settings from recent
16917requests.<wbr/></p>
16918<p>This value is intended primarily for backwards compatibility with
16919the older camera implementations (for android.<wbr/>hardware.<wbr/>Camera).<wbr/></p></span>
16920                  </li>
16921                </ul>
16922
16923            </td> <!-- entry_type -->
16924
16925            <td class="entry_description">
16926              <p>The frame number corresponding to the last request
16927with which the output result (metadata + buffers) has been fully
16928synchronized.<wbr/></p>
16929            </td>
16930
16931            <td class="entry_units">
16932            </td>
16933
16934            <td class="entry_range">
16935              <p>Either a non-negative value corresponding to a
16936<code>frame_<wbr/>number</code>,<wbr/> or one of the two enums (CONVERGING /<wbr/> UNKNOWN).<wbr/></p>
16937            </td>
16938
16939            <td class="entry_tags">
16940              <ul class="entry_tags">
16941                  <li><a href="#tag_LIMITED">LIMITED</a></li>
16942              </ul>
16943            </td>
16944
16945          </tr>
16946          <tr class="entries_header">
16947            <th class="th_details" colspan="5">Details</th>
16948          </tr>
16949          <tr class="entry_cont">
16950            <td class="entry_details" colspan="5">
16951              <p>When a request is submitted to the camera device,<wbr/> there is usually a
16952delay of several frames before the controls get applied.<wbr/> A camera
16953device may either choose to account for this delay by implementing a
16954pipeline and carefully submit well-timed atomic control updates,<wbr/> or
16955it may start streaming control changes that span over several frame
16956boundaries.<wbr/></p>
16957<p>In the latter case,<wbr/> whenever a request's settings change relative to
16958the previous submitted request,<wbr/> the full set of changes may take
16959multiple frame durations to fully take effect.<wbr/> Some settings may
16960take effect sooner (in less frame durations) than others.<wbr/></p>
16961<p>While a set of control changes are being propagated,<wbr/> this value
16962will be CONVERGING.<wbr/></p>
16963<p>Once it is fully known that a set of control changes have been
16964finished propagating,<wbr/> and the resulting updated control settings
16965have been read back by the camera device,<wbr/> this value will be set
16966to a non-negative frame number (corresponding to the request to
16967which the results have synchronized to).<wbr/></p>
16968<p>Older camera device implementations may not have a way to detect
16969when all camera controls have been applied,<wbr/> and will always set this
16970value to UNKNOWN.<wbr/></p>
16971<p>FULL capability devices will always have this value set to the
16972frame number of the request corresponding to this result.<wbr/></p>
16973<p><em>Further details</em>:</p>
16974<ul>
16975<li>Whenever a request differs from the last request,<wbr/> any future
16976results not yet returned may have this value set to CONVERGING (this
16977could include any in-progress captures not yet returned by the camera
16978device,<wbr/> for more details see pipeline considerations below).<wbr/></li>
16979<li>Submitting a series of multiple requests that differ from the
16980previous request (e.<wbr/>g.<wbr/> r1,<wbr/> r2,<wbr/> r3 s.<wbr/>t.<wbr/> r1 != r2 != r3)
16981moves the new synchronization frame to the last non-repeating
16982request (using the smallest frame number from the contiguous list of
16983repeating requests).<wbr/></li>
16984<li>Submitting the same request repeatedly will not change this value
16985to CONVERGING,<wbr/> if it was already a non-negative value.<wbr/></li>
16986<li>When this value changes to non-negative,<wbr/> that means that all of the
16987metadata controls from the request have been applied,<wbr/> all of the
16988metadata controls from the camera device have been read to the
16989updated values (into the result),<wbr/> and all of the graphics buffers
16990corresponding to this result are also synchronized to the request.<wbr/></li>
16991</ul>
16992<p><em>Pipeline considerations</em>:</p>
16993<p>Submitting a request with updated controls relative to the previously
16994submitted requests may also invalidate the synchronization state
16995of all the results corresponding to currently in-flight requests.<wbr/></p>
16996<p>In other words,<wbr/> results for this current request and up to
16997<a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> prior requests may have their
16998<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> change to CONVERGING.<wbr/></p>
16999            </td>
17000          </tr>
17001
17002          <tr class="entries_header">
17003            <th class="th_details" colspan="5">HAL Implementation Details</th>
17004          </tr>
17005          <tr class="entry_cont">
17006            <td class="entry_details" colspan="5">
17007              <p>Using UNKNOWN here is illegal unless <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a>
17008is also UNKNOWN.<wbr/></p>
17009<p>FULL capability devices should simply set this value to the
17010<code>frame_<wbr/>number</code> of the request this result corresponds to.<wbr/></p>
17011            </td>
17012          </tr>
17013
17014          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
17015           <!-- end of entry -->
17016        
17017        
17018
17019      <!-- end of kind -->
17020      </tbody>
17021      <tr><td colspan="6" class="kind">static</td></tr>
17022
17023      <thead class="entries_header">
17024        <tr>
17025          <th class="th_name">Property Name</th>
17026          <th class="th_type">Type</th>
17027          <th class="th_description">Description</th>
17028          <th class="th_units">Units</th>
17029          <th class="th_range">Range</th>
17030          <th class="th_tags">Tags</th>
17031        </tr>
17032      </thead>
17033
17034      <tbody>
17035
17036        
17037
17038        
17039
17040        
17041
17042        
17043
17044                
17045          <tr class="entry" id="static_android.sync.maxLatency">
17046            <td class="entry_name" rowspan="5">
17047              android.<wbr/>sync.<wbr/>max<wbr/>Latency
17048            </td>
17049            <td class="entry_type">
17050                <span class="entry_type_name entry_type_name_enum">int32</span>
17051
17052              <span class="entry_type_visibility"> [public]</span>
17053
17054                <ul class="entry_type_enum">
17055                  <li>
17056                    <span class="entry_type_enum_name">PER_FRAME_CONTROL</span>
17057                    <span class="entry_type_enum_value">0</span>
17058                    <span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/>
17059(and furthermore for all results,<wbr/>
17060<code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == <a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a></code>)</p>
17061<p>Changing controls over multiple requests one after another will
17062produce results that have those controls applied atomically
17063each frame.<wbr/></p>
17064<p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
17065                  </li>
17066                  <li>
17067                    <span class="entry_type_enum_name">UNKNOWN</span>
17068                    <span class="entry_type_enum_value">-1</span>
17069                    <span class="entry_type_enum_notes"><p>Each new frame has some subset (potentially the entire set)
17070of the past requests applied to the camera settings.<wbr/></p>
17071<p>By submitting a series of identical requests,<wbr/> the camera device
17072will eventually have the camera settings applied,<wbr/> but it is
17073unknown when that exact point will be.<wbr/></p></span>
17074                  </li>
17075                </ul>
17076
17077            </td> <!-- entry_type -->
17078
17079            <td class="entry_description">
17080              <p>The maximum number of frames that can occur after a request
17081(different than the previous) has been submitted,<wbr/> and before the
17082result's state becomes synchronized (by setting
17083<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> to a non-negative value).<wbr/></p>
17084            </td>
17085
17086            <td class="entry_units">
17087              number of processed requests
17088            </td>
17089
17090            <td class="entry_range">
17091              <p>&gt;= -1</p>
17092            </td>
17093
17094            <td class="entry_tags">
17095              <ul class="entry_tags">
17096                  <li><a href="#tag_LIMITED">LIMITED</a></li>
17097              </ul>
17098            </td>
17099
17100          </tr>
17101          <tr class="entries_header">
17102            <th class="th_details" colspan="5">Details</th>
17103          </tr>
17104          <tr class="entry_cont">
17105            <td class="entry_details" colspan="5">
17106              <p>This defines the maximum distance (in number of metadata results),<wbr/>
17107between <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> and the equivalent
17108<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
17109<p>In other words this acts as an upper boundary for how many frames
17110must occur before the camera device knows for a fact that the new
17111submitted camera settings have been applied in outgoing frames.<wbr/></p>
17112<p>For example if the distance was 2,<wbr/></p>
17113<pre><code>initial request = X (repeating)
17114request1 = X
17115request2 = Y
17116request3 = Y
17117request4 = Y
17118
17119where requestN has frameNumber N,<wbr/> and the first of the repeating
17120initial request's has frameNumber F (and F &lt; 1).<wbr/>
17121
17122initial result = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
17123result1 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
17124result2 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
17125result3 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
17126result4 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2 }
17127
17128where resultN has frameNumber N.<wbr/>
17129</code></pre>
17130<p>Since <code>result4</code> has a <code>frameNumber == 4</code> and
17131<code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2</code>,<wbr/> the distance is clearly
17132<code>4 - 2 = 2</code>.<wbr/></p>
17133            </td>
17134          </tr>
17135
17136          <tr class="entries_header">
17137            <th class="th_details" colspan="5">HAL Implementation Details</th>
17138          </tr>
17139          <tr class="entry_cont">
17140            <td class="entry_details" colspan="5">
17141              <p>Use <code>frame_<wbr/>count</code> from camera3_<wbr/>request_<wbr/>t instead of
17142<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
17143<p>LIMITED devices are strongly encouraged to use a non-negative
17144value.<wbr/> If UNKNOWN is used here then app developers do not have a way
17145to know when sensor settings have been applied.<wbr/></p>
17146            </td>
17147          </tr>
17148
17149          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
17150           <!-- end of entry -->
17151        
17152        
17153
17154      <!-- end of kind -->
17155      </tbody>
17156
17157  <!-- end of section -->
17158<!-- </namespace> -->
17159  </table>
17160
17161  <div class="tags" id="tag_index">
17162    <h2>Tags</h2>
17163    <ul>
17164      <li id="tag_AWB">AWB - 
17165        Needed for auto white balance
17166    
17167        <ul class="tags_entries">
17168          <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
17169        </ul>
17170      </li> <!-- tag_AWB -->
17171      <li id="tag_BC">BC - 
17172        Needed for backwards compatibility with old Java API
17173    
17174        <ul class="tags_entries">
17175          <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
17176          <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
17177          <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
17178          <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
17179          <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
17180          <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
17181          <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
17182          <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
17183          <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
17184          <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
17185          <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
17186          <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
17187          <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
17188          <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
17189          <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
17190          <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
17191          <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
17192          <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
17193          <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
17194          <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
17195          <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
17196          <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
17197          <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
17198          <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
17199          <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
17200          <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
17201          <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
17202          <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
17203          <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
17204          <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
17205          <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
17206          <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
17207          <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
17208          <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
17209          <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
17210          <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
17211          <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
17212          <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
17213          <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
17214          <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
17215          <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
17216          <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
17217          <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
17218          <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
17219          <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
17220          <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
17221          <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
17222          <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
17223          <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
17224          <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
17225          <li><a href="#static_android.scaler.availableMinFrameDurations">android.scaler.availableMinFrameDurations</a> (static)</li>
17226          <li><a href="#static_android.scaler.availableStallDurations">android.scaler.availableStallDurations</a> (static)</li>
17227          <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
17228          <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
17229          <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
17230          <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
17231          <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
17232          <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
17233          <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
17234          <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
17235          <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
17236          <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
17237          <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
17238          <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
17239          <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
17240          <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
17241        </ul>
17242      </li> <!-- tag_BC -->
17243      <li id="tag_V1">V1 - 
17244        New features for first camera 2 release (API1)
17245    
17246        <ul class="tags_entries">
17247          <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
17248          <li><a href="#controls_android.edge.mode">android.edge.mode</a> (controls)</li>
17249          <li><a href="#controls_android.edge.strength">android.edge.strength</a> (controls)</li>
17250          <li><a href="#static_android.edge.availableEdgeModes">android.edge.availableEdgeModes</a> (static)</li>
17251          <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
17252          <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
17253          <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
17254          <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
17255          <li><a href="#static_android.hotPixel.availableHotPixelModes">android.hotPixel.availableHotPixelModes</a> (static)</li>
17256          <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
17257          <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
17258          <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
17259          <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
17260          <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
17261          <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
17262          <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
17263          <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
17264          <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
17265          <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
17266          <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
17267          <li><a href="#static_android.lens.info.focusDistanceCalibration">android.lens.info.focusDistanceCalibration</a> (static)</li>
17268          <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li>
17269          <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
17270          <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
17271          <li><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.noiseReduction.availableNoiseReductionModes</a> (static)</li>
17272          <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
17273          <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
17274          <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
17275          <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
17276          <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
17277          <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
17278          <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
17279          <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
17280          <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
17281          <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
17282          <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
17283          <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
17284          <li><a href="#controls_android.statistics.hotPixelMapMode">android.statistics.hotPixelMapMode</a> (controls)</li>
17285          <li><a href="#static_android.statistics.info.availableHotPixelMapModes">android.statistics.info.availableHotPixelMapModes</a> (static)</li>
17286          <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
17287          <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
17288          <li><a href="#dynamic_android.statistics.hotPixelMap">android.statistics.hotPixelMap</a> (dynamic)</li>
17289          <li><a href="#dynamic_android.edge.mode">android.edge.mode</a> (dynamic)</li>
17290          <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
17291          <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
17292          <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
17293          <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
17294          <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a> (dynamic)</li>
17295        </ul>
17296      </li> <!-- tag_V1 -->
17297      <li id="tag_ADV">ADV - None
17298        <ul class="tags_entries">
17299          <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
17300          <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
17301          <li><a href="#static_android.hotPixel.availableHotPixelModes">android.hotPixel.availableHotPixelModes</a> (static)</li>
17302          <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li>
17303          <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
17304        </ul>
17305      </li> <!-- tag_ADV -->
17306      <li id="tag_DNG">DNG - 
17307        Needed for DNG file support
17308    
17309        <ul class="tags_entries">
17310          <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
17311          <li><a href="#static_android.hotPixel.availableHotPixelModes">android.hotPixel.availableHotPixelModes</a> (static)</li>
17312          <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
17313          <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
17314          <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
17315          <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
17316          <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
17317          <li><a href="#static_android.sensor.profileHueSatMapDimensions">android.sensor.profileHueSatMapDimensions</a> (static)</li>
17318          <li><a href="#dynamic_android.sensor.referenceIlluminant">android.sensor.referenceIlluminant</a> (dynamic)</li>
17319          <li><a href="#dynamic_android.sensor.calibrationTransform">android.sensor.calibrationTransform</a> (dynamic)</li>
17320          <li><a href="#dynamic_android.sensor.colorTransform">android.sensor.colorTransform</a> (dynamic)</li>
17321          <li><a href="#dynamic_android.sensor.forwardMatrix">android.sensor.forwardMatrix</a> (dynamic)</li>
17322          <li><a href="#dynamic_android.sensor.neutralColorPoint">android.sensor.neutralColorPoint</a> (dynamic)</li>
17323          <li><a href="#dynamic_android.sensor.profileHueSatMap">android.sensor.profileHueSatMap</a> (dynamic)</li>
17324          <li><a href="#dynamic_android.sensor.profileToneCurve">android.sensor.profileToneCurve</a> (dynamic)</li>
17325          <li><a href="#dynamic_android.sensor.greenSplit">android.sensor.greenSplit</a> (dynamic)</li>
17326          <li><a href="#controls_android.statistics.hotPixelMapMode">android.statistics.hotPixelMapMode</a> (controls)</li>
17327          <li><a href="#static_android.statistics.info.availableHotPixelMapModes">android.statistics.info.availableHotPixelMapModes</a> (static)</li>
17328          <li><a href="#dynamic_android.statistics.hotPixelMap">android.statistics.hotPixelMap</a> (dynamic)</li>
17329          <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
17330        </ul>
17331      </li> <!-- tag_DNG -->
17332      <li id="tag_EXIF">EXIF - None
17333        <ul class="tags_entries">
17334          <li><a href="#dynamic_android.sensor.referenceIlluminant">android.sensor.referenceIlluminant</a> (dynamic)</li>
17335        </ul>
17336      </li> <!-- tag_EXIF -->
17337      <li id="tag_HAL2">HAL2 - 
17338        Entry is only used by camera device HAL 2.x
17339    
17340        <ul class="tags_entries">
17341          <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li>
17342          <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li>
17343          <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li>
17344          <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a> (static)</li>
17345          <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li>
17346        </ul>
17347      </li> <!-- tag_HAL2 -->
17348      <li id="tag_FULL">FULL - 
17349        Entry is required for full hardware level devices, and optional for other hardware levels
17350    
17351        <ul class="tags_entries">
17352          <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
17353          <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
17354          <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li>
17355        </ul>
17356      </li> <!-- tag_FULL -->
17357      <li id="tag_LIMITED">LIMITED - 
17358      Entry assists with LIMITED device implementation. LIMITED devices
17359      must implement all entries with this tag. Optional for FULL devices.
17360    
17361        <ul class="tags_entries">
17362          <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a> (dynamic)</li>
17363          <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a> (static)</li>
17364        </ul>
17365      </li> <!-- tag_LIMITED -->
17366    </ul>
17367  </div>
17368
17369  [ <a href="#">top</a> ]
17370
17371</body>
17372</html>
17373