blob: dc65e777ed95c30cea753888f8252a00f4013808 [file] [log] [blame]
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001<!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" />
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070020 <title>Android Camera HAL3.0 Properties</title>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021 <style type="text/css">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070022 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 }
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080031 .entry_cont { background-color: #f0f0f0 }
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070032 .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; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080037
38 /* table column sizes */
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070039 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 }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080041 .th_name { width: 20% }
42 .th_units { width: 10% }
43 .th_tags { width: 5% }
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080044 .th_details { width: 25% }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080045 .th_type { width: 20% }
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070046 .th_description { width: 20% }
47 .th_range { width: 10% }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080048 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 */
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080054 .entry_name { color: #333333; padding-left:1.0em; font-size:1.1em; font-family: monospace; vertical-align:top; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080055
56 /* Entry type flair */
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070057 .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}
Igor Murashkin08b8aad2012-11-29 15:23:03 -080060 .entry_type_enum_name { font-family: monospace; font-weight: bolder; }
61 .entry_type_enum_notes:before { content:" - " }
Igor Murashkina10351a2014-01-15 17:05:22 -080062 .entry_type_enum_notes>p:first-child { display:inline; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080063 .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
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080071 /* 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; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080077
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
Igor Murashkin08b8aad2012-11-29 15:23:03 -080098<body>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070099 <h1>Android Camera HAL3.0 Properties</h1>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800100
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700101
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800102 <h2>Table of Contents</h2>
103 <ul class="toc">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700104 <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>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700113 <li><a href="#controls_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700114 </ul>
115 </li>
116 <li>
117 <span class="toc_kind_header">dynamic</span>
118 <ul class="toc_section">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700119 <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>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700121 </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>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -0800172 <li><a href="#dynamic_android.control.aeMode">android.control.aeMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700173 <li><a href="#dynamic_android.control.aeRegions">android.control.aeRegions</a></li>
174 <li><a href="#dynamic_android.control.aeState">android.control.aeState</a></li>
175 <li><a href="#dynamic_android.control.afMode">android.control.afMode</a></li>
176 <li><a href="#dynamic_android.control.afRegions">android.control.afRegions</a></li>
177 <li><a href="#dynamic_android.control.afState">android.control.afState</a></li>
178 <li><a href="#dynamic_android.control.afTriggerId">android.control.afTriggerId</a></li>
179 <li><a href="#dynamic_android.control.awbMode">android.control.awbMode</a></li>
180 <li><a href="#dynamic_android.control.awbRegions">android.control.awbRegions</a></li>
181 <li><a href="#dynamic_android.control.awbState">android.control.awbState</a></li>
182 <li><a href="#dynamic_android.control.mode">android.control.mode</a></li>
183 </ul>
184 </li>
185 </ul> <!-- toc_section -->
186 </li>
187 <li>
188 <span class="toc_section_header"><a href="#section_demosaic">demosaic</a></span>
189 <ul class="toc_section">
190 <li>
191 <span class="toc_kind_header">controls</span>
192 <ul class="toc_section">
193 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a></li>
194 </ul>
195 </li>
196 </ul> <!-- toc_section -->
197 </li>
198 <li>
199 <span class="toc_section_header"><a href="#section_edge">edge</a></span>
200 <ul class="toc_section">
201 <li>
202 <span class="toc_kind_header">controls</span>
203 <ul class="toc_section">
204 <li><a href="#controls_android.edge.mode">android.edge.mode</a></li>
205 <li><a href="#controls_android.edge.strength">android.edge.strength</a></li>
206 </ul>
207 </li>
208 <li>
209 <span class="toc_kind_header">dynamic</span>
210 <ul class="toc_section">
211 <li><a href="#dynamic_android.edge.mode">android.edge.mode</a></li>
212 </ul>
213 </li>
214 </ul> <!-- toc_section -->
215 </li>
216 <li>
217 <span class="toc_section_header"><a href="#section_flash">flash</a></span>
218 <ul class="toc_section">
219 <li>
220 <span class="toc_kind_header">controls</span>
221 <ul class="toc_section">
222 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a></li>
223 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a></li>
224 <li><a href="#controls_android.flash.mode">android.flash.mode</a></li>
225 </ul>
226 </li>
227 <li>
228 <span class="toc_kind_header">static</span>
229 <ul class="toc_section">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800230
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700231 <li><a href="#static_android.flash.info.available">android.flash.info.available</a></li>
232 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800233
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700234 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a></li>
235 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a></li>
236 </ul>
237 </li>
238 <li>
239 <span class="toc_kind_header">dynamic</span>
240 <ul class="toc_section">
241 <li><a href="#dynamic_android.flash.firingPower">android.flash.firingPower</a></li>
242 <li><a href="#dynamic_android.flash.firingTime">android.flash.firingTime</a></li>
243 <li><a href="#dynamic_android.flash.mode">android.flash.mode</a></li>
244 <li><a href="#dynamic_android.flash.state">android.flash.state</a></li>
245 </ul>
246 </li>
247 </ul> <!-- toc_section -->
248 </li>
249 <li>
250 <span class="toc_section_header"><a href="#section_geometric">geometric</a></span>
251 <ul class="toc_section">
252 <li>
253 <span class="toc_kind_header">controls</span>
254 <ul class="toc_section">
255 <li><a href="#controls_android.geometric.mode">android.geometric.mode</a></li>
256 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a></li>
257 </ul>
258 </li>
259 </ul> <!-- toc_section -->
260 </li>
261 <li>
262 <span class="toc_section_header"><a href="#section_hotPixel">hotPixel</a></span>
263 <ul class="toc_section">
264 <li>
265 <span class="toc_kind_header">controls</span>
266 <ul class="toc_section">
267 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a></li>
268 </ul>
269 </li>
270 <li>
271 <span class="toc_kind_header">static</span>
272 <ul class="toc_section">
273
274 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a></li>
275
276 </ul>
277 </li>
278 <li>
279 <span class="toc_kind_header">dynamic</span>
280 <ul class="toc_section">
281 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a></li>
282 </ul>
283 </li>
284 </ul> <!-- toc_section -->
285 </li>
286 <li>
287 <span class="toc_section_header"><a href="#section_jpeg">jpeg</a></span>
288 <ul class="toc_section">
289 <li>
290 <span class="toc_kind_header">controls</span>
291 <ul class="toc_section">
292 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
293 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
294 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
295 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a></li>
296 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a></li>
297 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
298 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
299 </ul>
300 </li>
301 <li>
302 <span class="toc_kind_header">static</span>
303 <ul class="toc_section">
304 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a></li>
305 <li><a href="#static_android.jpeg.maxSize">android.jpeg.maxSize</a></li>
306 </ul>
307 </li>
308 <li>
309 <span class="toc_kind_header">dynamic</span>
310 <ul class="toc_section">
311 <li><a href="#dynamic_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
312 <li><a href="#dynamic_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
313 <li><a href="#dynamic_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
314 <li><a href="#dynamic_android.jpeg.orientation">android.jpeg.orientation</a></li>
315 <li><a href="#dynamic_android.jpeg.quality">android.jpeg.quality</a></li>
316 <li><a href="#dynamic_android.jpeg.size">android.jpeg.size</a></li>
317 <li><a href="#dynamic_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
318 <li><a href="#dynamic_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
319 </ul>
320 </li>
321 </ul> <!-- toc_section -->
322 </li>
323 <li>
324 <span class="toc_section_header"><a href="#section_lens">lens</a></span>
325 <ul class="toc_section">
326 <li>
327 <span class="toc_kind_header">controls</span>
328 <ul class="toc_section">
329 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a></li>
330 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a></li>
331 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a></li>
332 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a></li>
333 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
334 </ul>
335 </li>
336 <li>
337 <span class="toc_kind_header">static</span>
338 <ul class="toc_section">
339
340 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a></li>
341 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a></li>
342 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a></li>
343 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a></li>
344 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a></li>
345 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a></li>
346 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a></li>
347 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700348 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a></li>
349
350 <li><a href="#static_android.lens.facing">android.lens.facing</a></li>
351 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a></li>
352 <li><a href="#static_android.lens.position">android.lens.position</a></li>
353 </ul>
354 </li>
355 <li>
356 <span class="toc_kind_header">dynamic</span>
357 <ul class="toc_section">
358 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a></li>
359 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a></li>
360 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a></li>
361 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a></li>
362 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a></li>
363 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
364 <li><a href="#dynamic_android.lens.state">android.lens.state</a></li>
365 </ul>
366 </li>
367 </ul> <!-- toc_section -->
368 </li>
369 <li>
370 <span class="toc_section_header"><a href="#section_noiseReduction">noiseReduction</a></span>
371 <ul class="toc_section">
372 <li>
373 <span class="toc_kind_header">controls</span>
374 <ul class="toc_section">
375 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
376 <li><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a></li>
377 </ul>
378 </li>
379 <li>
380 <span class="toc_kind_header">dynamic</span>
381 <ul class="toc_section">
382 <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
383 </ul>
384 </li>
385 </ul> <!-- toc_section -->
386 </li>
387 <li>
388 <span class="toc_section_header"><a href="#section_quirks">quirks</a></span>
389 <ul class="toc_section">
390 <li>
391 <span class="toc_kind_header">static</span>
392 <ul class="toc_section">
393 <li><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a></li>
394 <li><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a></li>
395 <li><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a></li>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -0700396 <li><a href="#static_android.quirks.usePartialResult">android.quirks.usePartialResult</a></li>
397 </ul>
398 </li>
399 <li>
400 <span class="toc_kind_header">dynamic</span>
401 <ul class="toc_section">
402 <li><a href="#dynamic_android.quirks.partialResult">android.quirks.partialResult</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700403 </ul>
404 </li>
405 </ul> <!-- toc_section -->
406 </li>
407 <li>
408 <span class="toc_section_header"><a href="#section_request">request</a></span>
409 <ul class="toc_section">
410 <li>
411 <span class="toc_kind_header">controls</span>
412 <ul class="toc_section">
413 <li><a href="#controls_android.request.frameCount">android.request.frameCount</a></li>
414 <li><a href="#controls_android.request.id">android.request.id</a></li>
415 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a></li>
416 <li><a href="#controls_android.request.metadataMode">android.request.metadataMode</a></li>
417 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a></li>
418 <li><a href="#controls_android.request.type">android.request.type</a></li>
419 </ul>
420 </li>
421 <li>
422 <span class="toc_kind_header">static</span>
423 <ul class="toc_section">
424 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a></li>
425 <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a></li>
Zhijun He12744b22014-01-22 15:58:57 -0800426 <li><a href="#static_android.request.maxNumInputStreams">android.request.maxNumInputStreams</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800427 <li><a href="#static_android.request.pipelineMaxDepth">android.request.pipelineMaxDepth</a></li>
Igor Murashkin2e291102014-01-10 14:18:30 -0800428 <li><a href="#static_android.request.partialResultCount">android.request.partialResultCount</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700429 </ul>
430 </li>
431 <li>
432 <span class="toc_kind_header">dynamic</span>
433 <ul class="toc_section">
434 <li><a href="#dynamic_android.request.frameCount">android.request.frameCount</a></li>
435 <li><a href="#dynamic_android.request.id">android.request.id</a></li>
436 <li><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a></li>
437 <li><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800438 <li><a href="#dynamic_android.request.pipelineDepth">android.request.pipelineDepth</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700439 </ul>
440 </li>
441 </ul> <!-- toc_section -->
442 </li>
443 <li>
444 <span class="toc_section_header"><a href="#section_scaler">scaler</a></span>
445 <ul class="toc_section">
446 <li>
447 <span class="toc_kind_header">controls</span>
448 <ul class="toc_section">
449 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
450 </ul>
451 </li>
452 <li>
453 <span class="toc_kind_header">static</span>
454 <ul class="toc_section">
455 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a></li>
456 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a></li>
457 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a></li>
458 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a></li>
459 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a></li>
460 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a></li>
461 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a></li>
462 <li><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a></li>
463 </ul>
464 </li>
465 <li>
466 <span class="toc_kind_header">dynamic</span>
467 <ul class="toc_section">
468 <li><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
469 </ul>
470 </li>
471 </ul> <!-- toc_section -->
472 </li>
473 <li>
474 <span class="toc_section_header"><a href="#section_sensor">sensor</a></span>
475 <ul class="toc_section">
476 <li>
477 <span class="toc_kind_header">controls</span>
478 <ul class="toc_section">
479 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
480 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
481 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800482 <li><a href="#controls_android.sensor.testPatternData">android.sensor.testPatternData</a></li>
483 <li><a href="#controls_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700484 </ul>
485 </li>
486 <li>
487 <span class="toc_kind_header">static</span>
488 <ul class="toc_section">
489
490 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700491 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700492 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a></li>
493 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a></li>
494 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a></li>
495 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a></li>
496 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a></li>
497 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a></li>
498
499 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a></li>
500 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a></li>
501 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a></li>
502 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a></li>
503 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a></li>
504 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a></li>
505 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a></li>
506 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a></li>
507 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a></li>
508 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a></li>
509 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a></li>
510 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a></li>
511 <li><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800512 <li><a href="#static_android.sensor.availableTestPatternModes">android.sensor.availableTestPatternModes</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700513 </ul>
514 </li>
515 <li>
516 <span class="toc_kind_header">dynamic</span>
517 <ul class="toc_section">
518 <li><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
519 <li><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
520 <li><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
521 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a></li>
Igor Murashkin656aa5a2013-08-13 14:23:39 -0700522 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800523 <li><a href="#dynamic_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700524 </ul>
525 </li>
526 </ul> <!-- toc_section -->
527 </li>
528 <li>
529 <span class="toc_section_header"><a href="#section_shading">shading</a></span>
530 <ul class="toc_section">
531 <li>
532 <span class="toc_kind_header">controls</span>
533 <ul class="toc_section">
534 <li><a href="#controls_android.shading.mode">android.shading.mode</a></li>
535 <li><a href="#controls_android.shading.strength">android.shading.strength</a></li>
536 </ul>
537 </li>
538 <li>
539 <span class="toc_kind_header">dynamic</span>
540 <ul class="toc_section">
541 <li><a href="#dynamic_android.shading.mode">android.shading.mode</a></li>
542 </ul>
543 </li>
544 </ul> <!-- toc_section -->
545 </li>
546 <li>
547 <span class="toc_section_header"><a href="#section_statistics">statistics</a></span>
548 <ul class="toc_section">
549 <li>
550 <span class="toc_kind_header">controls</span>
551 <ul class="toc_section">
552 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
553 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
554 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700555 <li><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700556 </ul>
557 </li>
558 <li>
559 <span class="toc_kind_header">static</span>
560 <ul class="toc_section">
561
562 <li><a href="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a></li>
563 <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a></li>
564 <li><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a></li>
565 <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a></li>
566 <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a></li>
567 <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a></li>
568
569 </ul>
570 </li>
571 <li>
572 <span class="toc_kind_header">dynamic</span>
573 <ul class="toc_section">
574 <li><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
575 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a></li>
576 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a></li>
577 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a></li>
578 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a></li>
579 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a></li>
580 <li><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
581 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a></li>
582 <li><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700583 <li><a href="#dynamic_android.statistics.lensShadingMap">android.statistics.lensShadingMap</a></li>
584 <li><a href="#dynamic_android.statistics.predictedColorGains">android.statistics.predictedColorGains</a></li>
585 <li><a href="#dynamic_android.statistics.predictedColorTransform">android.statistics.predictedColorTransform</a></li>
586 <li><a href="#dynamic_android.statistics.sceneFlicker">android.statistics.sceneFlicker</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700587 </ul>
588 </li>
589 </ul> <!-- toc_section -->
590 </li>
591 <li>
592 <span class="toc_section_header"><a href="#section_tonemap">tonemap</a></span>
593 <ul class="toc_section">
594 <li>
595 <span class="toc_kind_header">controls</span>
596 <ul class="toc_section">
597 <li><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
598 <li><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
599 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
600 <li><a href="#controls_android.tonemap.mode">android.tonemap.mode</a></li>
601 </ul>
602 </li>
603 <li>
604 <span class="toc_kind_header">static</span>
605 <ul class="toc_section">
606 <li><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a></li>
607 </ul>
608 </li>
609 <li>
610 <span class="toc_kind_header">dynamic</span>
611 <ul class="toc_section">
612 <li><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
613 <li><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
614 <li><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
615 <li><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a></li>
616 </ul>
617 </li>
618 </ul> <!-- toc_section -->
619 </li>
620 <li>
621 <span class="toc_section_header"><a href="#section_led">led</a></span>
622 <ul class="toc_section">
623 <li>
624 <span class="toc_kind_header">controls</span>
625 <ul class="toc_section">
626 <li><a href="#controls_android.led.transmit">android.led.transmit</a></li>
627 </ul>
628 </li>
629 <li>
630 <span class="toc_kind_header">dynamic</span>
631 <ul class="toc_section">
632 <li><a href="#dynamic_android.led.transmit">android.led.transmit</a></li>
633 </ul>
634 </li>
635 <li>
636 <span class="toc_kind_header">static</span>
637 <ul class="toc_section">
638 <li><a href="#static_android.led.availableLeds">android.led.availableLeds</a></li>
639 </ul>
640 </li>
641 </ul> <!-- toc_section -->
642 </li>
643 <li>
644 <span class="toc_section_header"><a href="#section_info">info</a></span>
645 <ul class="toc_section">
646 <li>
647 <span class="toc_kind_header">static</span>
648 <ul class="toc_section">
649 <li><a href="#static_android.info.supportedHardwareLevel">android.info.supportedHardwareLevel</a></li>
650 </ul>
651 </li>
652 </ul> <!-- toc_section -->
653 </li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700654 <li>
655 <span class="toc_section_header"><a href="#section_blackLevel">blackLevel</a></span>
656 <ul class="toc_section">
657 <li>
658 <span class="toc_kind_header">controls</span>
659 <ul class="toc_section">
660 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a></li>
661 </ul>
662 </li>
663 <li>
664 <span class="toc_kind_header">dynamic</span>
665 <ul class="toc_section">
666 <li><a href="#dynamic_android.blackLevel.lock">android.blackLevel.lock</a></li>
667 </ul>
668 </li>
669 </ul> <!-- toc_section -->
670 </li>
Igor Murashkin5c1fc682014-01-16 17:51:36 -0800671 <li>
672 <span class="toc_section_header"><a href="#section_sync">sync</a></span>
673 <ul class="toc_section">
674 <li>
675 <span class="toc_kind_header">dynamic</span>
676 <ul class="toc_section">
677 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a></li>
678 </ul>
679 </li>
680 <li>
681 <span class="toc_kind_header">static</span>
682 <ul class="toc_section">
683 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a></li>
684 </ul>
685 </li>
686 </ul> <!-- toc_section -->
687 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800688 </ul>
689
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700690
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800691 <h1>Properties</h1>
692 <table class="properties">
693
694 <thead class="thead_dummy">
695 <tr>
696 <th class="th_name">Property Name</th>
697 <th class="th_type">Type</th>
698 <th class="th_description">Description</th>
699 <th class="th_units">Units</th>
700 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800701 <th class="th_tags">Tags</th>
702 </tr>
703 </thead> <!-- so that the first occurrence of thead is not
704 above the first occurrence of tr -->
705<!-- <namespace name="android"> -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800706 <tr><td colspan="6" id="section_colorCorrection" class="section">colorCorrection</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800707
708
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800709 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800710
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700711 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800712 <tr>
713 <th class="th_name">Property Name</th>
714 <th class="th_type">Type</th>
715 <th class="th_description">Description</th>
716 <th class="th_units">Units</th>
717 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800718 <th class="th_tags">Tags</th>
719 </tr>
720 </thead>
721
722 <tbody>
723
724
725
726
727
728
729
730
731
732
733 <tr class="entry" id="controls_android.colorCorrection.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800734 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800735 android.<wbr/>color<wbr/>Correction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800736 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800737 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -0800738 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800739
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700740 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800741
742 <ul class="entry_type_enum">
743 <li>
744 <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
Igor Murashkina10351a2014-01-15 17:05:22 -0800745 <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
Igor Murashkin43817ad2014-01-10 15:58:35 -0800746and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
747<p>All advanced white balance adjustments (not specified
748by our white balance pipeline) must be disabled.<wbr/></p>
749<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
750TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override
751this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800752 </li>
753 <li>
754 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800755 <span class="entry_type_enum_notes"><p>Must not slow down capture rate relative to sensor raw
756output.<wbr/></p>
757<p>Advanced white balance adjustments above and beyond
758the specified white balance pipeline may be applied.<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
760the camera device uses the last frame's AWB values
761(or defaults if AWB has never been run).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800762 </li>
763 <li>
764 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800765 <span class="entry_type_enum_notes"><p>Capture rate (relative to sensor raw output)
766may be reduced by high quality.<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>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800772 </li>
773 </ul>
774
775 </td> <!-- entry_type -->
776
777 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800778 <p>The mode control selects how the image data is converted from the
779sensor's native color into linear sRGB color.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800780 </td>
781
782 <td class="entry_units">
783 </td>
784
785 <td class="entry_range">
786 </td>
787
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800788 <td class="entry_tags">
789 </td>
790
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800791 </tr>
792 <tr class="entries_header">
793 <th class="th_details" colspan="5">Details</th>
794 </tr>
795 <tr class="entry_cont">
796 <td class="entry_details" colspan="5">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800797 <p>When auto-white balance is enabled with <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> this
798control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the
799application controls how the color mapping is performed.<wbr/></p>
800<p>We define the expected processing pipeline below.<wbr/> For consistency
801across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p>
802<p>When either FULL or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may
803do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
804<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the
805camera device (in the results) and be roughly correct.<wbr/></p>
806<p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from
807FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point
808as what was produced by the camera device in the earlier frame.<wbr/></p>
809<p>The expected processing pipeline is as follows:</p>
810<p><img alt="White balance processing pipeline" src="images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png"/></p>
811<p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance
812gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform
813matrix (applied after demosaic).<wbr/></p>
814<p>The 4-channel white-balance gains are defined as:</p>
815<pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ]
816</code></pre>
817<p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the
818output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/>
819These may be identical for a given camera device implementation; if
820the camera device does not support a separate gain for even/<wbr/>odd green
821channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
822<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
823<p>The matrices for color transforms are defined as a 9-entry vector:</p>
824<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 ]
825</code></pre>
826<p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/>
827to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p>
828<p>with colors as follows:</p>
829<pre><code>r' = I0r + I1g + I2b
830g' = I3r + I4g + I5b
831b' = I6r + I7g + I8b
832</code></pre>
833<p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow
834values are clipped to fit within the range.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800835 </td>
836 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800837
838
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800839 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
840 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800841
842
843 <tr class="entry" id="controls_android.colorCorrection.transform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800844 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800845 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800846 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800847 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700848 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800849 <span class="entry_type_container">x</span>
850
851 <span class="entry_type_array">
852 3 x 3
853 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700854 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800855 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800856
857
858 </td> <!-- entry_type -->
859
860 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -0800861 <p>A color transform matrix to use to transform
862from sensor RGB color space to output linear sRGB color space</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800863 </td>
864
865 <td class="entry_units">
866 </td>
867
868 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800869 </td>
870
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800871 <td class="entry_tags">
872 </td>
873
874 </tr>
875 <tr class="entries_header">
876 <th class="th_details" colspan="5">Details</th>
877 </tr>
878 <tr class="entry_cont">
879 <td class="entry_details" colspan="5">
Zhijun He44d0b3d2014-02-04 16:42:46 -0800880 <p>This matrix is either set by the camera device when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800881<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800882directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800883<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Zhijun He44d0b3d2014-02-04 16:42:46 -0800884<p>In the latter case,<wbr/> the camera device may round the matrix to account
885for precision issues; the final rounded matrix should be reported back
886in this matrix result metadata.<wbr/> The transform should keep the magnitude
887of the output color values within <code>[0,<wbr/> 1.<wbr/>0]</code> (assuming input color
888values is within the normalized range <code>[0,<wbr/> 1.<wbr/>0]</code>),<wbr/> or clipping may occur.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700889 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800890 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800891
892
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800893 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
894 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -0700895
896
897 <tr class="entry" id="controls_android.colorCorrection.gains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800898 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800899 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800900 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700901 <td class="entry_type">
902 <span class="entry_type_name">float</span>
903 <span class="entry_type_container">x</span>
904
905 <span class="entry_type_array">
906 4
907 </span>
908 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800909 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700910
911
912 </td> <!-- entry_type -->
913
914 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800915 <p>Gains applying to Bayer raw color channels for
Igor Murashkin0b080452013-12-27 15:30:25 -0800916white-balance</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700917 </td>
918
919 <td class="entry_units">
920 </td>
921
922 <td class="entry_range">
923 </td>
924
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800925 <td class="entry_tags">
926 </td>
927
928 </tr>
929 <tr class="entries_header">
930 <th class="th_details" colspan="5">Details</th>
931 </tr>
932 <tr class="entry_cont">
933 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -0800934 <p>The 4-channel white-balance gains are defined in
Igor Murashkin43817ad2014-01-10 15:58:35 -0800935the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
936for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
937is the gain for green pixels on the odd rows.<wbr/> if a HAL
Igor Murashkin0b080452013-12-27 15:30:25 -0800938does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800939it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
940<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800941<p>This array is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800942<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800943directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800944<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800945<p>The output should be the gains actually applied by the HAL to
Igor Murashkin0b080452013-12-27 15:30:25 -0800946the current frame.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800947 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800948 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800949
950
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800951 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
952 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800953
954
955
956 <!-- end of kind -->
957 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800958 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800959
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700960 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800961 <tr>
962 <th class="th_name">Property Name</th>
963 <th class="th_type">Type</th>
964 <th class="th_description">Description</th>
965 <th class="th_units">Units</th>
966 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800967 <th class="th_tags">Tags</th>
968 </tr>
969 </thead>
970
971 <tbody>
972
973
974
975
976
977
978
979
980
981
Zhijun He69fc0ea2013-07-17 09:42:58 -0700982 <tr class="entry" id="dynamic_android.colorCorrection.transform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800983 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800984 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800985 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800986 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700987 <span class="entry_type_name">rational</span>
988 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800989
Zhijun He69fc0ea2013-07-17 09:42:58 -0700990 <span class="entry_type_array">
991 3 x 3
992 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700993 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800994 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800995
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800996
997 </td> <!-- entry_type -->
998
999 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001000 <p>A color transform matrix to use to transform
1001from sensor RGB color space to output linear sRGB color space</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001002 </td>
1003
1004 <td class="entry_units">
1005 </td>
1006
1007 <td class="entry_range">
Zhijun He69fc0ea2013-07-17 09:42:58 -07001008 </td>
1009
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001010 <td class="entry_tags">
1011 </td>
1012
1013 </tr>
1014 <tr class="entries_header">
1015 <th class="th_details" colspan="5">Details</th>
1016 </tr>
1017 <tr class="entry_cont">
1018 <td class="entry_details" colspan="5">
Zhijun He44d0b3d2014-02-04 16:42:46 -08001019 <p>This matrix is either set by the camera device when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001020<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001021directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001022<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Zhijun He44d0b3d2014-02-04 16:42:46 -08001023<p>In the latter case,<wbr/> the camera device may round the matrix to account
1024for precision issues; the final rounded matrix should be reported back
1025in this matrix result metadata.<wbr/> The transform should keep the magnitude
1026of the output color values within <code>[0,<wbr/> 1.<wbr/>0]</code> (assuming input color
1027values is within the normalized range <code>[0,<wbr/> 1.<wbr/>0]</code>),<wbr/> or clipping may occur.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001028 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001029 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001030
1031
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001032 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1033 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -07001034
1035
1036 <tr class="entry" id="dynamic_android.colorCorrection.gains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001037 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001038 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001039 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001040 <td class="entry_type">
1041 <span class="entry_type_name">float</span>
1042 <span class="entry_type_container">x</span>
1043
1044 <span class="entry_type_array">
1045 4
1046 </span>
1047 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08001048 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001049
1050
1051 </td> <!-- entry_type -->
1052
1053 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -08001054 <p>Gains applying to Bayer raw color channels for
Igor Murashkin0b080452013-12-27 15:30:25 -08001055white-balance</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001056 </td>
1057
1058 <td class="entry_units">
1059 </td>
1060
1061 <td class="entry_range">
1062 </td>
1063
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001064 <td class="entry_tags">
1065 </td>
1066
1067 </tr>
1068 <tr class="entries_header">
1069 <th class="th_details" colspan="5">Details</th>
1070 </tr>
1071 <tr class="entry_cont">
1072 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001073 <p>The 4-channel white-balance gains are defined in
Igor Murashkin43817ad2014-01-10 15:58:35 -08001074the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
1075for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
1076is the gain for green pixels on the odd rows.<wbr/> if a HAL
Igor Murashkin0b080452013-12-27 15:30:25 -08001077does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
Igor Murashkin43817ad2014-01-10 15:58:35 -08001078it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
1079<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001080<p>This array is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001081<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001082directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001083<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin43817ad2014-01-10 15:58:35 -08001084<p>The output should be the gains actually applied by the HAL to
Igor Murashkin0b080452013-12-27 15:30:25 -08001085the current frame.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001086 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001087 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001088
1089
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001090 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1091 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001092
1093
1094
1095 <!-- end of kind -->
1096 </tbody>
1097
1098 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001099 <tr><td colspan="6" id="section_control" class="section">control</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001100
1101
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001102 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001103
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001104 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001105 <tr>
1106 <th class="th_name">Property Name</th>
1107 <th class="th_type">Type</th>
1108 <th class="th_description">Description</th>
1109 <th class="th_units">Units</th>
1110 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001111 <th class="th_tags">Tags</th>
1112 </tr>
1113 </thead>
1114
1115 <tbody>
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126 <tr class="entry" id="controls_android.control.aeAntibandingMode">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001127 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001128 android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001129 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001130 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001131 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001132
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001133 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001134
1135 <ul class="entry_type_enum">
1136 <li>
1137 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001138 <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
1139avoid banding problems.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001140 </li>
1141 <li>
1142 <span class="entry_type_enum_name">50HZ</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001143 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1144avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001145 </li>
1146 <li>
1147 <span class="entry_type_enum_name">60HZ</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001148 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1149avoid banding problems with 60Hz illumination
1150sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001151 </li>
1152 <li>
1153 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001154 <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
1155antibanding routine to the current illumination
1156conditions.<wbr/> This is the default.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001157 </li>
1158 </ul>
1159
1160 </td> <!-- entry_type -->
1161
1162 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001163 <p>The desired setting for the camera device's auto-exposure
1164algorithm's antibanding compensation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001165 </td>
1166
1167 <td class="entry_units">
1168 </td>
1169
1170 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001171 <p><a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001172 </td>
1173
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001174 <td class="entry_tags">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001175 <ul class="entry_tags">
1176 <li><a href="#tag_BC">BC</a></li>
1177 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001178 </td>
1179
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001180 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001181 <tr class="entries_header">
1182 <th class="th_details" colspan="5">Details</th>
1183 </tr>
1184 <tr class="entry_cont">
1185 <td class="entry_details" colspan="5">
1186 <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
1187lights,<wbr/> flicker at the rate of the power supply frequency
1188(60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
1189typically not noticeable to a person,<wbr/> it can be visible to
1190a camera device.<wbr/> If a camera sets its exposure time to the
1191wrong value,<wbr/> the flicker may become visible in the
1192viewfinder as flicker or in a final captured image,<wbr/> as a
1193set of variable-brightness bands across the image.<wbr/></p>
1194<p>Therefore,<wbr/> the auto-exposure routines of camera devices
1195include antibanding routines that ensure that the chosen
1196exposure value will not cause such banding.<wbr/> The choice of
1197exposure time depends on the rate of flicker,<wbr/> which the
1198camera device can detect automatically,<wbr/> or the expected
1199rate can be selected by the application using this
1200control.<wbr/></p>
1201<p>A given camera device may not support all of the possible
1202options for the antibanding mode.<wbr/> The
1203<a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
1204the available modes for a given camera device.<wbr/></p>
1205<p>The default mode is AUTO,<wbr/> which must be supported by all
1206camera devices.<wbr/></p>
1207<p>If manual exposure control is enabled (by setting
1208<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/>
1209then this setting has no effect,<wbr/> and the application must
1210ensure it selects exposure times that do not cause banding
1211issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
1212the application in this.<wbr/></p>
1213 </td>
1214 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001215
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001216 <tr class="entries_header">
1217 <th class="th_details" colspan="5">HAL Implementation Details</th>
1218 </tr>
1219 <tr class="entry_cont">
1220 <td class="entry_details" colspan="5">
1221 <p>For all capture request templates,<wbr/> this field must be set
1222to AUTO.<wbr/> AUTO is the only mode that must supported;
1223OFF,<wbr/> 50HZ,<wbr/> 60HZ are all optional.<wbr/></p>
1224<p>If manual exposure control is enabled (by setting
1225<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/>
1226then the exposure values provided by the application must not be
1227adjusted for antibanding.<wbr/></p>
1228 </td>
1229 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001230
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001231 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1232 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001233
1234
1235 <tr class="entry" id="controls_android.control.aeExposureCompensation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001236 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001237 android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001238 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001239 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001240 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001241
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001242 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001243
1244
1245 </td> <!-- entry_type -->
1246
1247 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001248 <p>Adjustment to AE target image
1249brightness</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001250 </td>
1251
1252 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08001253 count of positive/<wbr/>negative EV steps
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001254 </td>
1255
1256 <td class="entry_range">
1257 </td>
1258
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001259 <td class="entry_tags">
1260 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001261 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001262 </ul>
1263 </td>
1264
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001265 </tr>
1266 <tr class="entries_header">
1267 <th class="th_details" colspan="5">Details</th>
1268 </tr>
1269 <tr class="entry_cont">
1270 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001271 <p>For example,<wbr/> if EV step is 0.<wbr/>333,<wbr/> '6' will mean an
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001272exposure compensation of +2 EV; -3 will mean an exposure
Igor Murashkin0b080452013-12-27 15:30:25 -08001273compensation of -1</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001274 </td>
1275 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001276
1277
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001278 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1279 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001280
1281
1282 <tr class="entry" id="controls_android.control.aeLock">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001283 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001284 android.<wbr/>control.<wbr/>ae<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001285 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001286 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001287 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001288
Igor Murashkinb8dc8812013-07-17 16:29:34 -07001289 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001290
1291 <ul class="entry_type_enum">
1292 <li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001293 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001294 <span class="entry_type_enum_notes"><p>Autoexposure lock is disabled; the AE algorithm
1295is free to update its parameters.<wbr/></p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001296 </li>
1297 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001298 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001299 <span class="entry_type_enum_notes"><p>Autoexposure lock is enabled; the AE algorithm
1300must not update the exposure and sensitivity parameters
1301while the lock is active</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001302 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001303 </ul>
1304
1305 </td> <!-- entry_type -->
1306
1307 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001308 <p>Whether AE is currently locked to its latest
Zhijun He44d0b3d2014-02-04 16:42:46 -08001309calculated values.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001310 </td>
1311
1312 <td class="entry_units">
1313 </td>
1314
1315 <td class="entry_range">
1316 </td>
1317
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001318 <td class="entry_tags">
1319 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001320 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001321 </ul>
1322 </td>
1323
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001324 </tr>
1325 <tr class="entries_header">
1326 <th class="th_details" colspan="5">Details</th>
1327 </tr>
1328 <tr class="entry_cont">
1329 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001330 <p>Note that even when AE is locked,<wbr/> the flash may be
Zhijun He44d0b3d2014-02-04 16:42:46 -08001331fired 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/>
Igor Murashkin0b080452013-12-27 15:30:25 -08001332ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
Zhijun He44d0b3d2014-02-04 16:42:46 -08001333<p>If AE precapture is triggered (see <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>)
1334when AE is already locked,<wbr/> the camera device will not change the exposure time
1335(<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>)
1336parameters.<wbr/> The flash may be fired if the android.<wbr/>control.<wbr/>ae<wbr/>Mode
1337is ON_<wbr/>AUTO_<wbr/>FLASH/<wbr/>ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE and the scene is too dark.<wbr/> If the
1338<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>
1339<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>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001340 </td>
1341 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001342
1343
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001344 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1345 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001346
1347
1348 <tr class="entry" id="controls_android.control.aeMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001349 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001350 android.<wbr/>control.<wbr/>ae<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001351 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001352 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001353 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001354
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001355 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001356
1357 <ul class="entry_type_enum">
1358 <li>
1359 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001360 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
1361the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1362<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
1363<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
1364device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
1365a flash unit for this camera device.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001366 </li>
1367 <li>
1368 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001369 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
1370with no flash control.<wbr/> The application's values for
1371<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>,<wbr/> and
1373<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
1374application has control over the various
1375android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001376 </li>
1377 <li>
1378 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001379 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1380the camera's flash unit,<wbr/> firing it in low-light
1381conditions.<wbr/> The flash may be fired during a
1382precapture sequence (triggered by
1383<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
1384for captures for which the
1385<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1386STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001387 </li>
1388 <li>
1389 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001390 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1391the camera's flash unit,<wbr/> always firing it for still
1392captures.<wbr/> The flash may be fired during a precapture
1393sequence (triggered by
1394<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
1395be fired for captures for which the
1396<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1397STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001398 </li>
1399 <li>
1400 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001401 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
1402reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
1403a red eye reduction flash will fire during the
1404precapture sequence.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001405 </li>
1406 </ul>
1407
1408 </td> <!-- entry_type -->
1409
1410 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08001411 <p>The desired mode for the camera device's
1412auto-exposure routine.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001413 </td>
1414
1415 <td class="entry_units">
1416 </td>
1417
1418 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001419 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001420 </td>
1421
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001422 <td class="entry_tags">
1423 <ul class="entry_tags">
1424 <li><a href="#tag_BC">BC</a></li>
1425 </ul>
1426 </td>
1427
1428 </tr>
1429 <tr class="entries_header">
1430 <th class="th_details" colspan="5">Details</th>
1431 </tr>
1432 <tr class="entry_cont">
1433 <td class="entry_details" colspan="5">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08001434 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
1435AUTO.<wbr/></p>
1436<p>When set to any of the ON modes,<wbr/> the camera device's
1437auto-exposure routine is enabled,<wbr/> overriding the
1438application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
1439and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1440<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1441<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
1442is selected,<wbr/> the camera device's flash unit controls are
1443also overridden.<wbr/></p>
1444<p>The FLASH modes are only available if the camera device
1445has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
1446<p>If flash TORCH mode is desired,<wbr/> this field must be set to
1447ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
1448<p>When set to any of the ON modes,<wbr/> the values chosen by the
1449camera device auto-exposure routine for the overridden
1450fields for a given capture will be available in its
1451CaptureResult.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001452 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001453 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001454
1455
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001456 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1457 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001458
1459
1460 <tr class="entry" id="controls_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001461 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001462 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001463 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001464 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001465 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001466 <span class="entry_type_container">x</span>
1467
1468 <span class="entry_type_array">
1469 5 x area_count
1470 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001471 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001472
1473
1474 </td> <!-- entry_type -->
1475
1476 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001477 <p>List of areas to use for
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001478metering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001479 </td>
1480
1481 <td class="entry_units">
1482 </td>
1483
1484 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001485 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[0]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001486 </td>
1487
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001488 <td class="entry_tags">
1489 <ul class="entry_tags">
1490 <li><a href="#tag_BC">BC</a></li>
1491 </ul>
1492 </td>
1493
1494 </tr>
1495 <tr class="entries_header">
1496 <th class="th_details" colspan="5">Details</th>
1497 </tr>
1498 <tr class="entry_cont">
1499 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001500 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001501xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08001502specified coordinates.<wbr/></p>
1503<p>The coordinate system is based on the active pixel array,<wbr/>
1504with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001505(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1506<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08001507bottom-right pixel in the active pixel array.<wbr/> The weight
1508should be nonnegative.<wbr/></p>
1509<p>If all regions have 0 weight,<wbr/> then no specific metering area
1510needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001511outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001512should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001513used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001514 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001515 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001516
1517
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001518 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1519 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001520
1521
1522 <tr class="entry" id="controls_android.control.aeTargetFpsRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001523 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001524 android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001525 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001526 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001527 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001528 <span class="entry_type_container">x</span>
1529
1530 <span class="entry_type_array">
1531 2
1532 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001533 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001534
1535
1536 </td> <!-- entry_type -->
1537
1538 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001539 <p>Range over which fps can be adjusted to
1540maintain exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001541 </td>
1542
1543 <td class="entry_units">
1544 </td>
1545
1546 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001547 <p><a href="#static_android.control.aeAvailableTargetFpsRanges">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001548 </td>
1549
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001550 <td class="entry_tags">
1551 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001552 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001553 </ul>
1554 </td>
1555
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001556 </tr>
1557 <tr class="entries_header">
1558 <th class="th_details" colspan="5">Details</th>
1559 </tr>
1560 <tr class="entry_cont">
1561 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001562 <p>Only constrains AE algorithm,<wbr/> not manual control
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001563of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001564 </td>
1565 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001566
1567
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001568 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1569 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001570
1571
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001572 <tr class="entry" id="controls_android.control.aePrecaptureTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001573 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001574 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001575 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001576 <td class="entry_type">
1577 <span class="entry_type_name entry_type_name_enum">byte</span>
1578
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001579 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001580
1581 <ul class="entry_type_enum">
1582 <li>
1583 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001584 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001585 </li>
1586 <li>
1587 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001588 <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
1589by the camera device.<wbr/> The exact effect of the precapture
1590trigger depends on the current AE mode and state.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001591 </li>
1592 </ul>
1593
1594 </td> <!-- entry_type -->
1595
1596 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001597 <p>Whether the camera device will trigger a precapture
1598metering sequence when it processes this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001599 </td>
1600
1601 <td class="entry_units">
1602 </td>
1603
1604 <td class="entry_range">
1605 </td>
1606
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001607 <td class="entry_tags">
1608 <ul class="entry_tags">
1609 <li><a href="#tag_BC">BC</a></li>
1610 </ul>
1611 </td>
1612
1613 </tr>
1614 <tr class="entries_header">
1615 <th class="th_details" colspan="5">Details</th>
1616 </tr>
1617 <tr class="entry_cont">
1618 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001619 <p>This entry is normally set to IDLE,<wbr/> or is not
1620included at all in the request settings.<wbr/> When included and
Zhijun He92e698d2014-01-13 16:24:31 -08001621set to START,<wbr/> the camera device will trigger the autoexposure
Igor Murashkin0b080452013-12-27 15:30:25 -08001622precapture metering sequence.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001623<p>The effect of AE precapture trigger depends on the current
Zhijun He92e698d2014-01-13 16:24:31 -08001624AE mode and state; see <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture
1625state transition details.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001626 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001627 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001628
1629
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001630 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1631 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001632
1633
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001634 <tr class="entry" id="controls_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001635 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001636 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001637 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001638 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001639 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001640
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001641 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001642
1643 <ul class="entry_type_enum">
1644 <li>
1645 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001646 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
1647<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
1648application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001649 </li>
1650 <li>
1651 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001652 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
1653<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
1654is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
1655the autofocus trigger action is called.<wbr/> When that trigger
1656is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
1657the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
1658<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
1659and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001660 </li>
1661 <li>
1662 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001663 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
1664autofocus trigger action is called.<wbr/></p>
1665<p>When that trigger is activated,<wbr/> AF must transition to
1666ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
1667NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
1668position to default,<wbr/> and sets the AF state to
1669INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001670 </li>
1671 <li>
1672 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001673 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1674position continually to attempt to provide a
1675constantly-in-focus image stream.<wbr/></p>
1676<p>The focusing behavior should be suitable for good quality
1677video recording; typically this means slower focus
1678movement and no overshoots.<wbr/> When the AF trigger is not
1679involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
1680and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
1681states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
1682the algorithm should immediately transition into
1683AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1684lens position until a cancel AF trigger is received.<wbr/></p>
1685<p>Once cancel is received,<wbr/> the algorithm should transition
1686back to INACTIVE and resume passive scan.<wbr/> Note that this
1687behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
1688ongoing PASSIVE_<wbr/>SCAN must immediately be
1689canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001690 </li>
1691 <li>
1692 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001693 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1694position continually to attempt to provide a
1695constantly-in-focus image stream.<wbr/></p>
1696<p>The focusing behavior should be suitable for still image
1697capture; typically this means focusing as fast as
1698possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
1699algorithm should start in INACTIVE state,<wbr/> and then
1700transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
1701appropriate as it attempts to maintain focus.<wbr/> When the AF
1702trigger is activated,<wbr/> the algorithm should finish its
1703PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
1704AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1705lens position until a cancel AF trigger is received.<wbr/></p>
1706<p>When the AF cancel trigger is activated,<wbr/> the algorithm
1707should transition back to INACTIVE and then act as if it
1708has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001709 </li>
1710 <li>
1711 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001712 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
1713trigger is ignored,<wbr/> AF state should always be
1714INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001715 </li>
1716 </ul>
1717
1718 </td> <!-- entry_type -->
1719
1720 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001721 <p>Whether AF is currently enabled,<wbr/> and what
1722mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001723 </td>
1724
1725 <td class="entry_units">
1726 </td>
1727
1728 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08001729 <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001730 </td>
1731
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001732 <td class="entry_tags">
1733 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001734 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001735 </ul>
1736 </td>
1737
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001738 </tr>
1739 <tr class="entries_header">
1740 <th class="th_details" colspan="5">Details</th>
1741 </tr>
1742 <tr class="entry_cont">
1743 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001744 <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO.<wbr/></p>
Zhijun Hef163fa92014-01-14 09:59:04 -08001745<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
1746the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
1747in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001748 </td>
1749 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001750
1751
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001752 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1753 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001754
1755
1756 <tr class="entry" id="controls_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001757 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001758 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001759 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001760 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001761 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001762 <span class="entry_type_container">x</span>
1763
1764 <span class="entry_type_array">
1765 5 x area_count
1766 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001767 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001768
1769
1770 </td> <!-- entry_type -->
1771
1772 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001773 <p>List of areas to use for focus
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001774estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001775 </td>
1776
1777 <td class="entry_units">
1778 </td>
1779
1780 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001781 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[2]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001782 </td>
1783
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001784 <td class="entry_tags">
1785 <ul class="entry_tags">
1786 <li><a href="#tag_BC">BC</a></li>
1787 </ul>
1788 </td>
1789
1790 </tr>
1791 <tr class="entries_header">
1792 <th class="th_details" colspan="5">Details</th>
1793 </tr>
1794 <tr class="entry_cont">
1795 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001796 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001797xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08001798specified coordinates.<wbr/></p>
1799<p>The coordinate system is based on the active pixel array,<wbr/>
1800with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001801(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1802<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08001803bottom-right pixel in the active pixel array.<wbr/> The weight
1804should be nonnegative.<wbr/></p>
1805<p>If all regions have 0 weight,<wbr/> then no specific focus area
1806needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001807outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001808should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001809used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001810 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001811 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001812
1813
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001814 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1815 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001816
1817
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001818 <tr class="entry" id="controls_android.control.afTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001819 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001820 android.<wbr/>control.<wbr/>af<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001821 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001822 <td class="entry_type">
1823 <span class="entry_type_name entry_type_name_enum">byte</span>
1824
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001825 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001826
1827 <ul class="entry_type_enum">
1828 <li>
1829 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001830 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001831 </li>
1832 <li>
1833 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001834 <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001835 </li>
1836 <li>
1837 <span class="entry_type_enum_name">CANCEL</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001838 <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
1839state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001840 </li>
1841 </ul>
1842
1843 </td> <!-- entry_type -->
1844
1845 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001846 <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001847 </td>
1848
1849 <td class="entry_units">
1850 </td>
1851
1852 <td class="entry_range">
1853 </td>
1854
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001855 <td class="entry_tags">
1856 <ul class="entry_tags">
1857 <li><a href="#tag_BC">BC</a></li>
1858 </ul>
1859 </td>
1860
1861 </tr>
1862 <tr class="entries_header">
1863 <th class="th_details" colspan="5">Details</th>
1864 </tr>
1865 <tr class="entry_cont">
1866 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001867 <p>This entry is normally set to IDLE,<wbr/> or is not
1868included at all in the request settings.<wbr/></p>
Zhijun He92e698d2014-01-13 16:24:31 -08001869<p>When included and set to START,<wbr/> the camera device will trigger the
1870autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
1871<p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
1872and return to its initial AF state.<wbr/></p>
1873<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>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001874 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001875 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001876
1877
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001878 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1879 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001880
1881
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001882 <tr class="entry" id="controls_android.control.awbLock">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001883 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001884 android.<wbr/>control.<wbr/>awb<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001885 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001886 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001887 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001888
Igor Murashkinb8dc8812013-07-17 16:29:34 -07001889 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001890
1891 <ul class="entry_type_enum">
1892 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001893 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001894 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is disabled; the AWB
1895algorithm is free to update its parameters if in AUTO
1896mode.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001897 </li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001898 <li>
1899 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001900 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is enabled; the AWB
1901algorithm must not update the exposure and sensitivity
1902parameters while the lock is active</p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001903 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001904 </ul>
1905
1906 </td> <!-- entry_type -->
1907
1908 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001909 <p>Whether AWB is currently locked to its
1910latest calculated values</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001911 </td>
1912
1913 <td class="entry_units">
1914 </td>
1915
1916 <td class="entry_range">
1917 </td>
1918
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001919 <td class="entry_tags">
1920 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001921 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001922 </ul>
1923 </td>
1924
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001925 </tr>
1926 <tr class="entries_header">
1927 <th class="th_details" colspan="5">Details</th>
1928 </tr>
1929 <tr class="entry_cont">
1930 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001931 <p>Note that AWB lock is only meaningful for AUTO
1932mode; in other modes,<wbr/> AWB is already fixed to a specific
1933setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001934 </td>
1935 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001936
1937
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001938 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1939 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001940
1941
1942 <tr class="entry" id="controls_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001943 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001944 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001945 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001946 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001947 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001948
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001949 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001950
1951 <ul class="entry_type_enum">
1952 <li>
1953 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001954 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1955the application-selected color transform matrix
1956(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
1957(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
1958device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001959 </li>
1960 <li>
1961 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001962 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
1963the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
1964and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001965 </li>
1966 <li>
1967 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001968 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1969the camera device uses incandescent light as the assumed scene
1970illumination for white balance.<wbr/> While the exact white balance
1971transforms are up to the camera device,<wbr/> they will approximately
1972match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001973 </li>
1974 <li>
1975 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001976 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1977the camera device uses fluorescent light as the assumed scene
1978illumination for white balance.<wbr/> While the exact white balance
1979transforms are up to the camera device,<wbr/> they will approximately
1980match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001981 </li>
1982 <li>
1983 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001984 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1985the camera device uses warm fluorescent light as the assumed scene
1986illumination for white balance.<wbr/> While the exact white balance
1987transforms are up to the camera device,<wbr/> they will approximately
1988match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001989 </li>
1990 <li>
1991 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001992 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1993the camera device uses daylight light as the assumed scene
1994illumination for white balance.<wbr/> While the exact white balance
1995transforms are up to the camera device,<wbr/> they will approximately
1996match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001997 </li>
1998 <li>
1999 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002000 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2001the camera device uses cloudy daylight light as the assumed scene
2002illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002003 </li>
2004 <li>
2005 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002006 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2007the camera device uses twilight light as the assumed scene
2008illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002009 </li>
2010 <li>
2011 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002012 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2013the camera device uses shade light as the assumed scene
2014illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002015 </li>
2016 </ul>
2017
2018 </td> <!-- entry_type -->
2019
2020 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002021 <p>Whether AWB is currently setting the color
2022transform fields,<wbr/> and what its illumination target
2023is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002024 </td>
2025
2026 <td class="entry_units">
2027 </td>
2028
2029 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08002030 <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002031 </td>
2032
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002033 <td class="entry_tags">
2034 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002035 <li><a href="#tag_BC">BC</a></li>
2036 <li><a href="#tag_AWB">AWB</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002037 </ul>
2038 </td>
2039
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002040 </tr>
2041 <tr class="entries_header">
2042 <th class="th_details" colspan="5">Details</th>
2043 </tr>
2044 <tr class="entry_cont">
2045 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08002046 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
2047<p>When set to the ON mode,<wbr/> the camera device's auto white balance
2048routine is enabled,<wbr/> overriding the application's selected
2049<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
2050<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2051<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
2052routine is disabled.<wbr/> The applicantion manually controls the white
2053balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
2054and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2055<p>When set to any other modes,<wbr/> the camera device's auto white balance
2056routine is disabled.<wbr/> The camera device uses each particular illumination
2057target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002058 </td>
2059 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002060
2061
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002062 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2063 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002064
2065
2066 <tr class="entry" id="controls_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002067 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002068 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002069 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002070 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002071 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002072 <span class="entry_type_container">x</span>
2073
2074 <span class="entry_type_array">
2075 5 x area_count
2076 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002077 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002078
2079
2080 </td> <!-- entry_type -->
2081
2082 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002083 <p>List of areas to use for illuminant
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002084estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002085 </td>
2086
2087 <td class="entry_units">
2088 </td>
2089
2090 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002091 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[1]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002092 </td>
2093
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002094 <td class="entry_tags">
2095 <ul class="entry_tags">
2096 <li><a href="#tag_BC">BC</a></li>
2097 </ul>
2098 </td>
2099
2100 </tr>
2101 <tr class="entries_header">
2102 <th class="th_details" colspan="5">Details</th>
2103 </tr>
2104 <tr class="entry_cont">
2105 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002106 <p>Only used in AUTO mode.<wbr/></p>
2107<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002108xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08002109specified coordinates.<wbr/></p>
2110<p>The coordinate system is based on the active pixel array,<wbr/>
2111with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002112(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
2113<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08002114bottom-right pixel in the active pixel array.<wbr/> The weight
2115should be nonnegative.<wbr/></p>
2116<p>If all regions have 0 weight,<wbr/> then no specific metering area
2117needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002118outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08002119should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002120used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002121 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002122 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002123
2124
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002125 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2126 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002127
2128
2129 <tr class="entry" id="controls_android.control.captureIntent">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002130 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002131 android.<wbr/>control.<wbr/>capture<wbr/>Intent
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002132 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002133 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002134 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002135
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002136 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002137
2138 <ul class="entry_type_enum">
2139 <li>
2140 <span class="entry_type_enum_name">CUSTOM</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002141 <span class="entry_type_enum_notes"><p>This request doesn't fall into the other
2142categories.<wbr/> Default to preview-like
2143behavior.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002144 </li>
2145 <li>
2146 <span class="entry_type_enum_name">PREVIEW</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002147 <span class="entry_type_enum_notes"><p>This request is for a preview-like usecase.<wbr/> The
2148precapture trigger may be used to start off a metering
2149w/<wbr/>flash sequence</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002150 </li>
2151 <li>
2152 <span class="entry_type_enum_name">STILL_CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002153 <span class="entry_type_enum_notes"><p>This request is for a still capture-type
2154usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002155 </li>
2156 <li>
2157 <span class="entry_type_enum_name">VIDEO_RECORD</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002158 <span class="entry_type_enum_notes"><p>This request is for a video recording
2159usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002160 </li>
2161 <li>
2162 <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002163 <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
2164image while recording video) usecase</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002165 </li>
2166 <li>
2167 <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002168 <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
2169application will stream full-resolution images and
2170reprocess one or several later for a final
2171capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002172 </li>
2173 </ul>
2174
2175 </td> <!-- entry_type -->
2176
2177 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08002178 <p>Information to the camera device 3A (auto-exposure,<wbr/>
2179auto-focus,<wbr/> auto-white balance) routines about the purpose
2180of this capture,<wbr/> to help the camera device to decide optimal 3A
2181strategy.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002182 </td>
2183
2184 <td class="entry_units">
2185 </td>
2186
2187 <td class="entry_range">
Zhijun Heea27bc32014-01-15 13:47:59 -08002188 <p>All must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002189 </td>
2190
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002191 <td class="entry_tags">
2192 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002193 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002194 </ul>
2195 </td>
2196
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002197 </tr>
2198 <tr class="entries_header">
2199 <th class="th_details" colspan="5">Details</th>
2200 </tr>
2201 <tr class="entry_cont">
2202 <td class="entry_details" colspan="5">
Zhijun Heea27bc32014-01-15 13:47:59 -08002203 <p>This control is only effective if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code>
2204and any 3A routine is active.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002205 </td>
2206 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002207
2208
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002209 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2210 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002211
2212
2213 <tr class="entry" id="controls_android.control.effectMode">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002214 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002215 android.<wbr/>control.<wbr/>effect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002216 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002217 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002218 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002219
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002220 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002221
2222 <ul class="entry_type_enum">
2223 <li>
2224 <span class="entry_type_enum_name">OFF</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002225 <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002226 </li>
2227 <li>
2228 <span class="entry_type_enum_name">MONO</span>
2229 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002230 <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
2231a single color.<wbr/> This will typically be grayscale.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002232 </li>
2233 <li>
2234 <span class="entry_type_enum_name">NEGATIVE</span>
2235 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002236 <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
2237are inverted.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002238 </li>
2239 <li>
2240 <span class="entry_type_enum_name">SOLARIZE</span>
2241 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002242 <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
2243image is wholly or partially reversed in
2244tone.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002245 </li>
2246 <li>
2247 <span class="entry_type_enum_name">SEPIA</span>
2248 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002249 <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
2250gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002251 </li>
2252 <li>
2253 <span class="entry_type_enum_name">POSTERIZE</span>
2254 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002255 <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
2256discrete regions of tone rather than a continuous
2257gradient of tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002258 </li>
2259 <li>
2260 <span class="entry_type_enum_name">WHITEBOARD</span>
2261 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002262 <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
2263as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002264 </li>
2265 <li>
2266 <span class="entry_type_enum_name">BLACKBOARD</span>
2267 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002268 <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
2269as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002270 </li>
2271 <li>
2272 <span class="entry_type_enum_name">AQUA</span>
2273 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002274 <span class="entry_type_enum_notes"><p>An "aqua" effect where a blue hue is added to the image.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002275 </li>
2276 </ul>
2277
2278 </td> <!-- entry_type -->
2279
2280 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002281 <p>A special color effect to apply.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002282 </td>
2283
2284 <td class="entry_units">
2285 </td>
2286
2287 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002288 <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002289 </td>
2290
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002291 <td class="entry_tags">
2292 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002293 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002294 </ul>
2295 </td>
2296
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002297 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002298 <tr class="entries_header">
2299 <th class="th_details" colspan="5">Details</th>
2300 </tr>
2301 <tr class="entry_cont">
2302 <td class="entry_details" colspan="5">
2303 <p>When this mode is set,<wbr/> a color effect will be applied
2304to images produced by the camera device.<wbr/> The interpretation
2305and implementation of these color effects is left to the
2306implementor of the camera device,<wbr/> and should not be
2307depended on to be consistent (or present) across all
2308devices.<wbr/></p>
2309<p>A color effect will only be applied if
2310<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2311 </td>
2312 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002313
2314
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002315 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2316 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002317
2318
2319 <tr class="entry" id="controls_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002320 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002321 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002322 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002323 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002324 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002325
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002326 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002327
2328 <ul class="entry_type_enum">
2329 <li>
2330 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002331 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
2332routines are disabled,<wbr/> no other settings in
2333android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002334 </li>
2335 <li>
2336 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002337 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
2338Manual control of capture parameters is disabled.<wbr/> All
2339controls in android.<wbr/>control.<wbr/>* besides sceneMode take
2340effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002341 </li>
2342 <li>
2343 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002344 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
2345control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
2346controls; the HAL must ignore those settings while
2347USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
2348scene mode).<wbr/> Other control entries are still active.<wbr/>
2349This setting can only be used if availableSceneModes !=
2350UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002351 </li>
2352 </ul>
2353
2354 </td> <!-- entry_type -->
2355
2356 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002357 <p>Overall mode of 3A control
2358routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002359 </td>
2360
2361 <td class="entry_units">
2362 </td>
2363
2364 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002365 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002366 </td>
2367
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002368 <td class="entry_tags">
2369 <ul class="entry_tags">
2370 <li><a href="#tag_BC">BC</a></li>
2371 </ul>
2372 </td>
2373
2374 </tr>
2375 <tr class="entries_header">
2376 <th class="th_details" colspan="5">Details</th>
2377 </tr>
2378 <tr class="entry_cont">
2379 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002380 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002381by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08002382capture parameters itself.<wbr/></p>
2383<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002384android.<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>
Igor Murashkin0b080452013-12-27 15:30:25 -08002385<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002386android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08002387one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002388as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002389<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002390 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002391 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002392
2393
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002394 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2395 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002396
2397
2398 <tr class="entry" id="controls_android.control.sceneMode">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002399 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002400 android.<wbr/>control.<wbr/>scene<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002401 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002402 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002403 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002404
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002405 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002406
2407 <ul class="entry_type_enum">
2408 <li>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002409 <span class="entry_type_enum_name">DISABLED</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002410 <span class="entry_type_enum_value">0</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002411 <span class="entry_type_enum_notes"><p>Indicates that no scene modes are set for a given capture request.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002412 </li>
2413 <li>
2414 <span class="entry_type_enum_name">FACE_PRIORITY</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002415 <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
2416detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
2417auto-exposure routines.<wbr/> If face detection statistics are
2418disabled (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/>
2419this should still operate correctly (but will not return
2420face detection statistics to the framework).<wbr/></p>
2421<p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2422<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and android.<wbr/>control.<wbr/>af<wbr/>Mode
2423remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002424 </li>
2425 <li>
2426 <span class="entry_type_enum_name">ACTION</span>
2427 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002428 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/>
2429Similar to SPORTS.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002430 </li>
2431 <li>
2432 <span class="entry_type_enum_name">PORTRAIT</span>
2433 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002434 <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002435 </li>
2436 <li>
2437 <span class="entry_type_enum_name">LANDSCAPE</span>
2438 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002439 <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002440 </li>
2441 <li>
2442 <span class="entry_type_enum_name">NIGHT</span>
2443 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002444 <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002445 </li>
2446 <li>
2447 <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
2448 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002449 <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
2450settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002451 </li>
2452 <li>
2453 <span class="entry_type_enum_name">THEATRE</span>
2454 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002455 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
2456remain off.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002457 </li>
2458 <li>
2459 <span class="entry_type_enum_name">BEACH</span>
2460 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002461 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002462 </li>
2463 <li>
2464 <span class="entry_type_enum_name">SNOW</span>
2465 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002466 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002467 </li>
2468 <li>
2469 <span class="entry_type_enum_name">SUNSET</span>
2470 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002471 <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002472 </li>
2473 <li>
2474 <span class="entry_type_enum_name">STEADYPHOTO</span>
2475 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002476 <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
2477device motion (for example: due to hand shake).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002478 </li>
2479 <li>
2480 <span class="entry_type_enum_name">FIREWORKS</span>
2481 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002482 <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002483 </li>
2484 <li>
2485 <span class="entry_type_enum_name">SPORTS</span>
2486 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002487 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/>
2488Similar to ACTION.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002489 </li>
2490 <li>
2491 <span class="entry_type_enum_name">PARTY</span>
2492 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002493 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
2494people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002495 </li>
2496 <li>
2497 <span class="entry_type_enum_name">CANDLELIGHT</span>
2498 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002499 <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
2500is a flame.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002501 </li>
2502 <li>
2503 <span class="entry_type_enum_name">BARCODE</span>
2504 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002505 <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
2506for use by camera applications that wish to read the
2507barcode value.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002508 </li>
2509 </ul>
2510
2511 </td> <!-- entry_type -->
2512
2513 <td class="entry_description">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002514 <p>A camera mode optimized for conditions typical in a particular
2515capture setting.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002516 </td>
2517
2518 <td class="entry_units">
2519 </td>
2520
2521 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002522 <p><a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002523 </td>
2524
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002525 <td class="entry_tags">
2526 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002527 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002528 </ul>
2529 </td>
2530
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002531 </tr>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002532 <tr class="entries_header">
2533 <th class="th_details" colspan="5">Details</th>
2534 </tr>
2535 <tr class="entry_cont">
2536 <td class="entry_details" colspan="5">
2537 <p>This is the mode that that is active when
2538<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/>
2539these modes will disable <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2540<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>
2541<p>The interpretation and implementation of these scene modes is left
2542to the implementor of the camera device.<wbr/> Their behavior will not be
2543consistent across all devices,<wbr/> and any given device may only implement
2544a subset of these modes.<wbr/></p>
2545 </td>
2546 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002547
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002548 <tr class="entries_header">
2549 <th class="th_details" colspan="5">HAL Implementation Details</th>
2550 </tr>
2551 <tr class="entry_cont">
2552 <td class="entry_details" colspan="5">
2553 <p>HAL implementations that include scene modes are expected to provide
2554the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2555<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
2556<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
2557 </td>
2558 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002559
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002560 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2561 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002562
2563
2564 <tr class="entry" id="controls_android.control.videoStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002565 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002566 android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002567 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002568 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002569 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002570
Igor Murashkinb8dc8812013-07-17 16:29:34 -07002571 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002572
2573 <ul class="entry_type_enum">
2574 <li>
2575 <span class="entry_type_enum_name">OFF</span>
2576 </li>
2577 <li>
2578 <span class="entry_type_enum_name">ON</span>
2579 </li>
2580 </ul>
2581
2582 </td> <!-- entry_type -->
2583
2584 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002585 <p>Whether video stabilization is
2586active</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002587 </td>
2588
2589 <td class="entry_units">
2590 </td>
2591
2592 <td class="entry_range">
2593 </td>
2594
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002595 <td class="entry_tags">
2596 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002597 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002598 </ul>
2599 </td>
2600
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002601 </tr>
2602 <tr class="entries_header">
2603 <th class="th_details" colspan="5">Details</th>
2604 </tr>
2605 <tr class="entry_cont">
2606 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002607 <p>If enabled,<wbr/> video stabilization can modify the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002608<a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> to keep the video stream
Igor Murashkin0b080452013-12-27 15:30:25 -08002609stabilized</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002610 </td>
2611 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002612
2613
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002614 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2615 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002616
2617
2618
2619 <!-- end of kind -->
2620 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002621 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002622
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002623 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002624 <tr>
2625 <th class="th_name">Property Name</th>
2626 <th class="th_type">Type</th>
2627 <th class="th_description">Description</th>
2628 <th class="th_units">Units</th>
2629 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002630 <th class="th_tags">Tags</th>
2631 </tr>
2632 </thead>
2633
2634 <tbody>
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645 <tr class="entry" id="static_android.control.aeAvailableAntibandingModes">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002646 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002647 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002648 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002649 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002650 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002651 <span class="entry_type_container">x</span>
2652
2653 <span class="entry_type_array">
2654 n
2655 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002656 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002657 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002658
2659
2660 </td> <!-- entry_type -->
2661
2662 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002663 <p>The set of auto-exposure antibanding modes that are
2664supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002665 </td>
2666
2667 <td class="entry_units">
2668 </td>
2669
2670 <td class="entry_range">
2671 </td>
2672
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002673 <td class="entry_tags">
2674 </td>
2675
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002676 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002677 <tr class="entries_header">
2678 <th class="th_details" colspan="5">Details</th>
2679 </tr>
2680 <tr class="entry_cont">
2681 <td class="entry_details" colspan="5">
2682 <p>Not all of the auto-exposure anti-banding modes may be
2683supported by a given camera device.<wbr/> This field lists the
2684valid anti-banding modes that the application may request
2685for this camera device; they must include AUTO.<wbr/></p>
2686 </td>
2687 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002688
2689
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002690 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2691 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002692
2693
2694 <tr class="entry" id="static_android.control.aeAvailableModes">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002695 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002696 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002697 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002698 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002699 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002700 <span class="entry_type_container">x</span>
2701
2702 <span class="entry_type_array">
2703 n
2704 </span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002705 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002706 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002707
2708
2709 </td> <!-- entry_type -->
2710
2711 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002712 <p>The set of auto-exposure modes that are supported by this
2713camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002714 </td>
2715
2716 <td class="entry_units">
2717 </td>
2718
2719 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002720 </td>
2721
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002722 <td class="entry_tags">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002723 <ul class="entry_tags">
2724 <li><a href="#tag_BC">BC</a></li>
2725 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002726 </td>
2727
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002728 </tr>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002729 <tr class="entries_header">
2730 <th class="th_details" colspan="5">Details</th>
2731 </tr>
2732 <tr class="entry_cont">
2733 <td class="entry_details" colspan="5">
2734 <p>Not all the auto-exposure modes may be supported by a
2735given camera device,<wbr/> especially if no flash unit is
2736available.<wbr/> This entry lists the valid modes for
2737<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> for this camera device.<wbr/></p>
2738<p>All camera devices support ON,<wbr/> and all camera devices with
2739flash units support ON_<wbr/>AUTO_<wbr/>FLASH and
2740ON_<wbr/>ALWAYS_<wbr/>FLASH.<wbr/></p>
2741<p>Full-capability camera devices always support OFF mode,<wbr/>
2742which enables application control of camera exposure time,<wbr/>
2743sensitivity,<wbr/> and frame duration.<wbr/></p>
2744 </td>
2745 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002746
2747
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002748 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2749 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002750
2751
2752 <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002753 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002754 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002755 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002756 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002757 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002758 <span class="entry_type_container">x</span>
2759
2760 <span class="entry_type_array">
2761 2 x n
2762 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002763 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002764 <div class="entry_type_notes">list of pairs of frame rates</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002765
2766
2767 </td> <!-- entry_type -->
2768
2769 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002770 <p>List of frame rate ranges supported by the
2771AE algorithm/<wbr/>hardware</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002772 </td>
2773
2774 <td class="entry_units">
2775 </td>
2776
2777 <td class="entry_range">
2778 </td>
2779
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002780 <td class="entry_tags">
2781 </td>
2782
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002783 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002784
2785
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002786 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2787 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002788
2789
2790 <tr class="entry" id="static_android.control.aeCompensationRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002791 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002792 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002793 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002794 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002795 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002796 <span class="entry_type_container">x</span>
2797
2798 <span class="entry_type_array">
2799 2
2800 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002801 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002802
2803
2804 </td> <!-- entry_type -->
2805
2806 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002807 <p>Maximum and minimum exposure compensation
2808setting,<wbr/> in counts of
2809android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step<wbr/>Size</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002810 </td>
2811
2812 <td class="entry_units">
2813 </td>
2814
2815 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002816 <p>At least (-2,<wbr/>2)/<wbr/>(exp compensation step
2817size)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002818 </td>
2819
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002820 <td class="entry_tags">
2821 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002822 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002823 </ul>
2824 </td>
2825
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002826 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002827
2828
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002829 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2830 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002831
2832
2833 <tr class="entry" id="static_android.control.aeCompensationStep">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002834 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002835 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002836 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002837 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002838 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002839
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002840 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002841
2842
2843 </td> <!-- entry_type -->
2844
2845 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002846 <p>Smallest step by which exposure compensation
2847can be changed</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002848 </td>
2849
2850 <td class="entry_units">
2851 </td>
2852
2853 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002854 <p>&lt;= 1/<wbr/>2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002855 </td>
2856
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002857 <td class="entry_tags">
2858 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002859 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002860 </ul>
2861 </td>
2862
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002863 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002864
2865
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002866 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2867 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002868
2869
2870 <tr class="entry" id="static_android.control.afAvailableModes">
Zhijun Hef163fa92014-01-14 09:59:04 -08002871 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002872 android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002873 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002874 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002875 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002876 <span class="entry_type_container">x</span>
2877
2878 <span class="entry_type_array">
2879 n
2880 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002881 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002882 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002883
2884
2885 </td> <!-- entry_type -->
2886
2887 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002888 <p>List of AF modes that can be
Zhijun Hef163fa92014-01-14 09:59:04 -08002889selected with <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002890 </td>
2891
2892 <td class="entry_units">
2893 </td>
2894
2895 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002896 </td>
2897
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002898 <td class="entry_tags">
2899 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002900 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002901 </ul>
2902 </td>
2903
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002904 </tr>
Zhijun Hef163fa92014-01-14 09:59:04 -08002905 <tr class="entries_header">
2906 <th class="th_details" colspan="5">Details</th>
2907 </tr>
2908 <tr class="entry_cont">
2909 <td class="entry_details" colspan="5">
2910 <p>Not all the auto-focus modes may be supported by a
2911given camera device.<wbr/> This entry lists the valid modes for
2912<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> for this camera device.<wbr/></p>
2913<p>All camera devices will support OFF mode,<wbr/> and all camera devices with
2914adjustable 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>)
2915will support AUTO mode.<wbr/></p>
2916 </td>
2917 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002918
2919
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002920 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2921 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002922
2923
2924 <tr class="entry" id="static_android.control.availableEffects">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002925 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002926 android.<wbr/>control.<wbr/>available<wbr/>Effects
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002927 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002928 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002929 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002930 <span class="entry_type_container">x</span>
2931
2932 <span class="entry_type_array">
2933 n
2934 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002935 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002936 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>effect<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002937
2938
2939 </td> <!-- entry_type -->
2940
2941 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002942 <p>List containing the subset of color effects
2943specified in <a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a> that is supported by
2944this device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002945 </td>
2946
2947 <td class="entry_units">
2948 </td>
2949
2950 <td class="entry_range">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002951 <p>Any subset of enums from those specified in
2952<a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a>.<wbr/> OFF must be included in any subset.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002953 </td>
2954
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002955 <td class="entry_tags">
2956 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002957 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002958 </ul>
2959 </td>
2960
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002961 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002962 <tr class="entries_header">
2963 <th class="th_details" colspan="5">Details</th>
2964 </tr>
2965 <tr class="entry_cont">
2966 <td class="entry_details" colspan="5">
2967 <p>This list contains the color effect modes that can be applied to
2968images produced by the camera device.<wbr/> Only modes that have
2969been fully implemented for the current device may be included here.<wbr/>
2970Implementations are not expected to be consistent across all devices.<wbr/>
2971If no color effect modes are available for a device,<wbr/> this should
2972simply be set to OFF.<wbr/></p>
2973<p>A color effect will only be applied if
2974<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2975 </td>
2976 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002977
2978
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002979 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2980 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002981
2982
2983 <tr class="entry" id="static_android.control.availableSceneModes">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002984 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002985 android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002986 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002987 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002988 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002989 <span class="entry_type_container">x</span>
2990
2991 <span class="entry_type_array">
2992 n
2993 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002994 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002995 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>scene<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002996
2997
2998 </td> <!-- entry_type -->
2999
3000 <td class="entry_description">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003001 <p>List containing a subset of scene modes
3002specified in <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003003 </td>
3004
3005 <td class="entry_units">
3006 </td>
3007
3008 <td class="entry_range">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003009 <p>Any subset of the enums specified in android.<wbr/>control.<wbr/>scene<wbr/>Mode
3010not including DISABLED,<wbr/> or solely DISABLED if no
3011scene modes are available.<wbr/> FACE_<wbr/>PRIORITY must be included
3012if 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>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003013 </td>
3014
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003015 <td class="entry_tags">
3016 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003017 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003018 </ul>
3019 </td>
3020
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003021 </tr>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003022 <tr class="entries_header">
3023 <th class="th_details" colspan="5">Details</th>
3024 </tr>
3025 <tr class="entry_cont">
3026 <td class="entry_details" colspan="5">
3027 <p>This list contains scene modes that can be set for the camera device.<wbr/>
3028Only scene modes that have been fully implemented for the
3029camera device may be included here.<wbr/> Implementations are not expected
3030to be consistent across all devices.<wbr/> If no scene modes are supported
3031by the camera device,<wbr/> this will be set to <code>[DISABLED]</code>.<wbr/></p>
3032 </td>
3033 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003034
3035
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003036 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3037 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003038
3039
3040 <tr class="entry" id="static_android.control.availableVideoStabilizationModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003041 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003042 android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003043 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003044 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003045 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003046 <span class="entry_type_container">x</span>
3047
3048 <span class="entry_type_array">
3049 n
3050 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003051 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08003052 <div class="entry_type_notes">List of enums.<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003053
3054
3055 </td> <!-- entry_type -->
3056
3057 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003058 <p>List of video stabilization modes that can
3059be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003060 </td>
3061
3062 <td class="entry_units">
3063 </td>
3064
3065 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003066 <p>OFF must be included</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003067 </td>
3068
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003069 <td class="entry_tags">
3070 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003071 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003072 </ul>
3073 </td>
3074
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003075 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003076
3077
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003078 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3079 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003080
3081
3082 <tr class="entry" id="static_android.control.awbAvailableModes">
Zhijun He7787f7f2014-01-14 16:30:31 -08003083 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003084 android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003085 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003086 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003087 <span class="entry_type_name">byte</span>
Alex Raya4251d92013-04-30 16:43:44 -07003088 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003089
Alex Raya4251d92013-04-30 16:43:44 -07003090 <span class="entry_type_array">
3091 n
3092 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003093 <span class="entry_type_visibility"> [public]</span>
Zhijun He7787f7f2014-01-14 16:30:31 -08003094 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003095
3096
3097 </td> <!-- entry_type -->
3098
3099 <td class="entry_description">
Zhijun He7787f7f2014-01-14 16:30:31 -08003100 <p>The set of auto-white-balance modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>)
3101that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003102 </td>
3103
3104 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003105 </td>
3106
3107 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003108 </td>
3109
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003110 <td class="entry_tags">
3111 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003112 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003113 </ul>
3114 </td>
3115
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003116 </tr>
Zhijun He7787f7f2014-01-14 16:30:31 -08003117 <tr class="entries_header">
3118 <th class="th_details" colspan="5">Details</th>
3119 </tr>
3120 <tr class="entry_cont">
3121 <td class="entry_details" colspan="5">
3122 <p>Not all the auto-white-balance modes may be supported by a
3123given camera device.<wbr/> This entry lists the valid modes for
3124<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> for this camera device.<wbr/></p>
3125<p>All camera devices will support ON mode.<wbr/></p>
3126<p>Full-capability camera devices will always support OFF mode,<wbr/>
3127which enables application control of white balance,<wbr/> by using
3128<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>
3129 </td>
3130 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003131
3132
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003133 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3134 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003135
3136
3137 <tr class="entry" id="static_android.control.maxRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003138 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003139 android.<wbr/>control.<wbr/>max<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003140 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003141 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003142 <span class="entry_type_name">int32</span>
Ruben Brunk120eea42014-01-15 15:55:08 -08003143 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003144
Ruben Brunk120eea42014-01-15 15:55:08 -08003145 <span class="entry_type_array">
3146 3
3147 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003148 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003149
3150
3151 </td> <!-- entry_type -->
3152
3153 <td class="entry_description">
Ruben Brunk120eea42014-01-15 15:55:08 -08003154 <p>List of the maximum number of regions that can be used for metering in
3155auto-exposure (AE),<wbr/> auto-white balance (AWB),<wbr/> and auto-focus (AF);
3156this corresponds to the the maximum number of elements in
3157<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/>
3158and <a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003159 </td>
3160
3161 <td class="entry_units">
3162 </td>
3163
3164 <td class="entry_range">
Ruben Brunk120eea42014-01-15 15:55:08 -08003165 <p>Value must be &gt;= 0 for each element.<wbr/> For full-capability devices
3166this value must be &gt;= 1 for AE and AF.<wbr/> The order of the elements is:
3167<code>(AE,<wbr/> AWB,<wbr/> AF)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003168 </td>
3169
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003170 <td class="entry_tags">
3171 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003172 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003173 </ul>
3174 </td>
3175
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003176 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003177
3178
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003179 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3180 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003181
3182
3183 <tr class="entry" id="static_android.control.sceneModeOverrides">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003184 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003185 android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003186 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003187 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003188 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003189 <span class="entry_type_container">x</span>
3190
3191 <span class="entry_type_array">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003192 3 x length(availableSceneModes)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003193 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003194 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003195
3196
3197 </td> <!-- entry_type -->
3198
3199 <td class="entry_description">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003200 <p>Ordered list of auto-exposure,<wbr/> auto-white balance,<wbr/> and auto-focus
3201settings to use with each available scene mode.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003202 </td>
3203
3204 <td class="entry_units">
3205 </td>
3206
3207 <td class="entry_range">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003208 <p>For each available scene mode,<wbr/> the list must contain three
3209entries containing the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3210<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
3211by the camera device.<wbr/> The entry order is <code>(aeMode,<wbr/> awbMode,<wbr/> afMode)</code>
3212where aeMode has the lowest index position.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003213 </td>
3214
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003215 <td class="entry_tags">
3216 <ul class="entry_tags">
3217 <li><a href="#tag_BC">BC</a></li>
3218 </ul>
3219 </td>
3220
3221 </tr>
3222 <tr class="entries_header">
3223 <th class="th_details" colspan="5">Details</th>
3224 </tr>
3225 <tr class="entry_cont">
3226 <td class="entry_details" colspan="5">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003227 <p>When a scene mode is enabled,<wbr/> the camera device is expected
3228to 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/>
3229and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> with its preferred settings for
3230that scene mode.<wbr/></p>
3231<p>The order of this list matches that of availableSceneModes,<wbr/>
3232with 3 entries for each mode.<wbr/> The overrides listed
3233for FACE_<wbr/>PRIORITY are ignored,<wbr/> since for that
3234mode the application-set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3235<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
3236used instead,<wbr/> matching the behavior when android.<wbr/>control.<wbr/>mode
3237is set to AUTO.<wbr/> It is recommended that the FACE_<wbr/>PRIORITY
3238overrides should be set to 0.<wbr/></p>
3239<p>For example,<wbr/> if availableSceneModes contains
3240<code>(FACE_<wbr/>PRIORITY,<wbr/> ACTION,<wbr/> NIGHT)</code>,<wbr/> then the camera framework
3241expects sceneModeOverrides to have 9 entries formatted like:
3242<code>(0,<wbr/> 0,<wbr/> 0,<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> AUTO,<wbr/> CONTINUOUS_<wbr/>PICTURE,<wbr/>
3243ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> INCANDESCENT,<wbr/> AUTO)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003244 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003245 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003246
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003247 <tr class="entries_header">
3248 <th class="th_details" colspan="5">HAL Implementation Details</th>
3249 </tr>
3250 <tr class="entry_cont">
3251 <td class="entry_details" colspan="5">
3252 <p>To maintain backward compatibility,<wbr/> this list will be made available
3253in the static metadata of the camera service.<wbr/> The camera service will
3254use these values to set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3255<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
3256mode other than FACE_<wbr/>PRIORITY.<wbr/></p>
3257 </td>
3258 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003259
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003260 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3261 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003262
3263
3264
3265 <!-- end of kind -->
3266 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003267 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003268
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003269 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003270 <tr>
3271 <th class="th_name">Property Name</th>
3272 <th class="th_type">Type</th>
3273 <th class="th_description">Description</th>
3274 <th class="th_units">Units</th>
3275 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003276 <th class="th_tags">Tags</th>
3277 </tr>
3278 </thead>
3279
3280 <tbody>
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291 <tr class="entry" id="dynamic_android.control.aePrecaptureId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003292 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003293 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003294 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003295 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003296 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003297
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003298 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003299
3300
3301 </td> <!-- entry_type -->
3302
3303 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003304 <p>The ID sent with the latest
3305CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003306 </td>
3307
3308 <td class="entry_units">
3309 </td>
3310
3311 <td class="entry_range">
Zhijun He7391bb62014-02-05 00:09:04 -08003312 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003313 </td>
3314
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003315 <td class="entry_tags">
3316 </td>
3317
3318 </tr>
3319 <tr class="entries_header">
3320 <th class="th_details" colspan="5">Details</th>
3321 </tr>
3322 <tr class="entry_cont">
3323 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003324 <p>Must be 0 if no
3325CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING trigger received yet
3326by HAL.<wbr/> Always updated even if AE algorithm ignores the
3327trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003328 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003329 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003330
3331
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003332 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3333 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003334
3335
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003336 <tr class="entry" id="dynamic_android.control.aeMode">
3337 <td class="entry_name" rowspan="3">
3338 android.<wbr/>control.<wbr/>ae<wbr/>Mode
3339 </td>
3340 <td class="entry_type">
3341 <span class="entry_type_name entry_type_name_enum">byte</span>
3342
3343 <span class="entry_type_visibility"> [public]</span>
3344
3345 <ul class="entry_type_enum">
3346 <li>
3347 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003348 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
3349the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3350<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
3351<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
3352device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
3353a flash unit for this camera device.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003354 </li>
3355 <li>
3356 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003357 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
3358with no flash control.<wbr/> The application's values for
3359<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3360<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3361<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
3362application has control over the various
3363android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003364 </li>
3365 <li>
3366 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003367 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3368the camera's flash unit,<wbr/> firing it in low-light
3369conditions.<wbr/> The flash may be fired during a
3370precapture sequence (triggered by
3371<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
3372for captures for which the
3373<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3374STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003375 </li>
3376 <li>
3377 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003378 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3379the camera's flash unit,<wbr/> always firing it for still
3380captures.<wbr/> The flash may be fired during a precapture
3381sequence (triggered by
3382<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
3383be fired for captures for which the
3384<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3385STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003386 </li>
3387 <li>
3388 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003389 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
3390reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
3391a red eye reduction flash will fire during the
3392precapture sequence.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003393 </li>
3394 </ul>
3395
3396 </td> <!-- entry_type -->
3397
3398 <td class="entry_description">
3399 <p>The desired mode for the camera device's
3400auto-exposure routine.<wbr/></p>
3401 </td>
3402
3403 <td class="entry_units">
3404 </td>
3405
3406 <td class="entry_range">
3407 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
3408 </td>
3409
3410 <td class="entry_tags">
3411 <ul class="entry_tags">
3412 <li><a href="#tag_BC">BC</a></li>
3413 </ul>
3414 </td>
3415
3416 </tr>
3417 <tr class="entries_header">
3418 <th class="th_details" colspan="5">Details</th>
3419 </tr>
3420 <tr class="entry_cont">
3421 <td class="entry_details" colspan="5">
3422 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
3423AUTO.<wbr/></p>
3424<p>When set to any of the ON modes,<wbr/> the camera device's
3425auto-exposure routine is enabled,<wbr/> overriding the
3426application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
3427and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3428<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3429<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
3430is selected,<wbr/> the camera device's flash unit controls are
3431also overridden.<wbr/></p>
3432<p>The FLASH modes are only available if the camera device
3433has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
3434<p>If flash TORCH mode is desired,<wbr/> this field must be set to
3435ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
3436<p>When set to any of the ON modes,<wbr/> the values chosen by the
3437camera device auto-exposure routine for the overridden
3438fields for a given capture will be available in its
3439CaptureResult.<wbr/></p>
3440 </td>
3441 </tr>
3442
3443
3444 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3445 <!-- end of entry -->
3446
3447
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003448 <tr class="entry" id="dynamic_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003449 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003450 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003451 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003452 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003453 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003454 <span class="entry_type_container">x</span>
3455
3456 <span class="entry_type_array">
3457 5 x area_count
3458 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003459 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003460
3461
3462 </td> <!-- entry_type -->
3463
3464 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003465 <p>List of areas to use for
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003466metering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003467 </td>
3468
3469 <td class="entry_units">
3470 </td>
3471
3472 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003473 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[0]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003474 </td>
3475
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003476 <td class="entry_tags">
3477 <ul class="entry_tags">
3478 <li><a href="#tag_BC">BC</a></li>
3479 </ul>
3480 </td>
3481
3482 </tr>
3483 <tr class="entries_header">
3484 <th class="th_details" colspan="5">Details</th>
3485 </tr>
3486 <tr class="entry_cont">
3487 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003488 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003489xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08003490specified coordinates.<wbr/></p>
3491<p>The coordinate system is based on the active pixel array,<wbr/>
3492with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003493(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3494<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08003495bottom-right pixel in the active pixel array.<wbr/> The weight
3496should be nonnegative.<wbr/></p>
3497<p>If all regions have 0 weight,<wbr/> then no specific metering area
3498needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003499outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08003500should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003501used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003502 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003503 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003504
3505
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003506 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3507 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003508
3509
3510 <tr class="entry" id="dynamic_android.control.aeState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003511 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003512 android.<wbr/>control.<wbr/>ae<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003513 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003514 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003515 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003516
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003517 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003518
3519 <ul class="entry_type_enum">
3520 <li>
3521 <span class="entry_type_enum_name">INACTIVE</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003522 <span class="entry_type_enum_notes"><p>AE is off or recently reset.<wbr/> When a camera device is opened,<wbr/> it starts in
Igor Murashkina10351a2014-01-15 17:05:22 -08003523this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003524 </li>
3525 <li>
3526 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003527 <span class="entry_type_enum_notes"><p>AE doesn't yet have a good set of control values
Zhijun He92e698d2014-01-13 16:24:31 -08003528for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003529 </li>
3530 <li>
3531 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003532 <span class="entry_type_enum_notes"><p>AE has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08003533current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003534 </li>
3535 <li>
3536 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003537 <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003538 </li>
3539 <li>
3540 <span class="entry_type_enum_name">FLASH_REQUIRED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003541 <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
3542needs to be fired for good quality still
Zhijun He92e698d2014-01-13 16:24:31 -08003543capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003544 </li>
3545 <li>
3546 <span class="entry_type_enum_name">PRECAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003547 <span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence
Zhijun He92e698d2014-01-13 16:24:31 -08003548(through the <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> START),<wbr/>
3549and is currently executing it.<wbr/> Once PRECAPTURE
Igor Murashkina10351a2014-01-15 17:05:22 -08003550completes,<wbr/> AE will transition to CONVERGED or
Zhijun He92e698d2014-01-13 16:24:31 -08003551FLASH_<wbr/>REQUIRED as appropriate.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003552 </li>
3553 </ul>
3554
3555 </td> <!-- entry_type -->
3556
3557 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003558 <p>Current state of AE algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003559 </td>
3560
3561 <td class="entry_units">
3562 </td>
3563
3564 <td class="entry_range">
3565 </td>
3566
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003567 <td class="entry_tags">
3568 </td>
3569
3570 </tr>
3571 <tr class="entries_header">
3572 <th class="th_details" colspan="5">Details</th>
3573 </tr>
3574 <tr class="entry_cont">
3575 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003576 <p>Switching between or enabling AE modes (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>) always
3577resets the AE state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3578or <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
3579the algorithm states to INACTIVE.<wbr/></p>
3580<p>The camera device can do several state transitions between two results,<wbr/> if it is
3581allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3582seen in a result.<wbr/></p>
3583<p>The state in the result is the state for this image (in sync with this image): if
3584AE state becomes CONVERGED,<wbr/> then the image data associated with this result should
3585be good to use.<wbr/></p>
3586<p>Below are state transition tables for different AE modes.<wbr/></p>
3587<table>
3588<thead>
3589<tr>
3590<th align="center">State</th>
3591<th align="center">Transition Cause</th>
3592<th align="center">New State</th>
3593<th align="center">Notes</th>
3594</tr>
3595</thead>
3596<tbody>
3597<tr>
3598<td align="center">INACTIVE</td>
3599<td align="center"></td>
3600<td align="center">INACTIVE</td>
3601<td align="center">Camera device auto exposure algorithm is disabled</td>
3602</tr>
3603</tbody>
3604</table>
3605<p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON_<wbr/>*:</p>
3606<table>
3607<thead>
3608<tr>
3609<th align="center">State</th>
3610<th align="center">Transition Cause</th>
3611<th align="center">New State</th>
3612<th align="center">Notes</th>
3613</tr>
3614</thead>
3615<tbody>
3616<tr>
3617<td align="center">INACTIVE</td>
3618<td align="center">Camera device initiates AE scan</td>
3619<td align="center">SEARCHING</td>
3620<td align="center">Values changing</td>
3621</tr>
3622<tr>
3623<td align="center">INACTIVE</td>
3624<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3625<td align="center">LOCKED</td>
3626<td align="center">Values locked</td>
3627</tr>
3628<tr>
3629<td align="center">SEARCHING</td>
3630<td align="center">Camera device finishes AE scan</td>
3631<td align="center">CONVERGED</td>
3632<td align="center">Good values,<wbr/> not changing</td>
3633</tr>
3634<tr>
3635<td align="center">SEARCHING</td>
3636<td align="center">Camera device finishes AE scan</td>
3637<td align="center">FLASH_<wbr/>REQUIRED</td>
3638<td align="center">Converged but too dark w/<wbr/>o flash</td>
3639</tr>
3640<tr>
3641<td align="center">SEARCHING</td>
3642<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3643<td align="center">LOCKED</td>
3644<td align="center">Values locked</td>
3645</tr>
3646<tr>
3647<td align="center">CONVERGED</td>
3648<td align="center">Camera device initiates AE scan</td>
3649<td align="center">SEARCHING</td>
3650<td align="center">Values changing</td>
3651</tr>
3652<tr>
3653<td align="center">CONVERGED</td>
3654<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3655<td align="center">LOCKED</td>
3656<td align="center">Values locked</td>
3657</tr>
3658<tr>
3659<td align="center">FLASH_<wbr/>REQUIRED</td>
3660<td align="center">Camera device initiates AE scan</td>
3661<td align="center">SEARCHING</td>
3662<td align="center">Values changing</td>
3663</tr>
3664<tr>
3665<td align="center">FLASH_<wbr/>REQUIRED</td>
3666<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3667<td align="center">LOCKED</td>
3668<td align="center">Values locked</td>
3669</tr>
3670<tr>
3671<td align="center">LOCKED</td>
3672<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3673<td align="center">SEARCHING</td>
3674<td align="center">Values not good after unlock</td>
3675</tr>
3676<tr>
3677<td align="center">LOCKED</td>
3678<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3679<td align="center">CONVERGED</td>
3680<td align="center">Values good after unlock</td>
3681</tr>
3682<tr>
3683<td align="center">LOCKED</td>
3684<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3685<td align="center">FLASH_<wbr/>REQUIRED</td>
3686<td align="center">Exposure good,<wbr/> but too dark</td>
3687</tr>
3688<tr>
3689<td align="center">PRECAPTURE</td>
3690<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3691<td align="center">CONVERGED</td>
3692<td align="center">Ready for high-quality capture</td>
3693</tr>
3694<tr>
3695<td align="center">PRECAPTURE</td>
3696<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3697<td align="center">LOCKED</td>
3698<td align="center">Ready for high-quality capture</td>
3699</tr>
3700<tr>
3701<td align="center">Any state</td>
3702<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
3703<td align="center">PRECAPTURE</td>
3704<td align="center">Start AE precapture metering sequence</td>
3705</tr>
3706</tbody>
3707</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003708 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003709 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003710
3711
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003712 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3713 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003714
3715
3716 <tr class="entry" id="dynamic_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003717 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003718 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003719 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003720 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003721 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003722
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003723 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003724
3725 <ul class="entry_type_enum">
3726 <li>
3727 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003728 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
3729<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
3730application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003731 </li>
3732 <li>
3733 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003734 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
3735<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
3736is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
3737the autofocus trigger action is called.<wbr/> When that trigger
3738is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
3739the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
3740<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
3741and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003742 </li>
3743 <li>
3744 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003745 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
3746autofocus trigger action is called.<wbr/></p>
3747<p>When that trigger is activated,<wbr/> AF must transition to
3748ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
3749NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
3750position to default,<wbr/> and sets the AF state to
3751INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003752 </li>
3753 <li>
3754 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003755 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3756position continually to attempt to provide a
3757constantly-in-focus image stream.<wbr/></p>
3758<p>The focusing behavior should be suitable for good quality
3759video recording; typically this means slower focus
3760movement and no overshoots.<wbr/> When the AF trigger is not
3761involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
3762and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
3763states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
3764the algorithm should immediately transition into
3765AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3766lens position until a cancel AF trigger is received.<wbr/></p>
3767<p>Once cancel is received,<wbr/> the algorithm should transition
3768back to INACTIVE and resume passive scan.<wbr/> Note that this
3769behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
3770ongoing PASSIVE_<wbr/>SCAN must immediately be
3771canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003772 </li>
3773 <li>
3774 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003775 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3776position continually to attempt to provide a
3777constantly-in-focus image stream.<wbr/></p>
3778<p>The focusing behavior should be suitable for still image
3779capture; typically this means focusing as fast as
3780possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
3781algorithm should start in INACTIVE state,<wbr/> and then
3782transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
3783appropriate as it attempts to maintain focus.<wbr/> When the AF
3784trigger is activated,<wbr/> the algorithm should finish its
3785PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
3786AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3787lens position until a cancel AF trigger is received.<wbr/></p>
3788<p>When the AF cancel trigger is activated,<wbr/> the algorithm
3789should transition back to INACTIVE and then act as if it
3790has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003791 </li>
3792 <li>
3793 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003794 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
3795trigger is ignored,<wbr/> AF state should always be
3796INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003797 </li>
3798 </ul>
3799
3800 </td> <!-- entry_type -->
3801
3802 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003803 <p>Whether AF is currently enabled,<wbr/> and what
3804mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003805 </td>
3806
3807 <td class="entry_units">
3808 </td>
3809
3810 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08003811 <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003812 </td>
3813
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003814 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003815 <ul class="entry_tags">
3816 <li><a href="#tag_BC">BC</a></li>
3817 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003818 </td>
3819
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003820 </tr>
3821 <tr class="entries_header">
3822 <th class="th_details" colspan="5">Details</th>
3823 </tr>
3824 <tr class="entry_cont">
3825 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003826 <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO.<wbr/></p>
Zhijun Hef163fa92014-01-14 09:59:04 -08003827<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
3828the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
3829in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003830 </td>
3831 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003832
3833
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003834 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3835 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003836
3837
3838 <tr class="entry" id="dynamic_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003839 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003840 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003841 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003842 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003843 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003844 <span class="entry_type_container">x</span>
3845
3846 <span class="entry_type_array">
3847 5 x area_count
3848 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003849 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003850
3851
3852 </td> <!-- entry_type -->
3853
3854 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003855 <p>List of areas to use for focus
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003856estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003857 </td>
3858
3859 <td class="entry_units">
3860 </td>
3861
3862 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003863 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[2]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003864 </td>
3865
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003866 <td class="entry_tags">
3867 <ul class="entry_tags">
3868 <li><a href="#tag_BC">BC</a></li>
3869 </ul>
3870 </td>
3871
3872 </tr>
3873 <tr class="entries_header">
3874 <th class="th_details" colspan="5">Details</th>
3875 </tr>
3876 <tr class="entry_cont">
3877 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003878 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003879xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08003880specified coordinates.<wbr/></p>
3881<p>The coordinate system is based on the active pixel array,<wbr/>
3882with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003883(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3884<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08003885bottom-right pixel in the active pixel array.<wbr/> The weight
3886should be nonnegative.<wbr/></p>
3887<p>If all regions have 0 weight,<wbr/> then no specific focus area
3888needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003889outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08003890should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003891used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003892 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003893 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003894
3895
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003896 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3897 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003898
3899
3900 <tr class="entry" id="dynamic_android.control.afState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003901 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003902 android.<wbr/>control.<wbr/>af<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003903 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003904 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003905 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003906
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003907 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003908
3909 <ul class="entry_type_enum">
3910 <li>
3911 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003912 <span class="entry_type_enum_notes"><p>AF off or has not yet tried to scan/<wbr/>been asked
3913to scan.<wbr/> When a camera device is opened,<wbr/> it starts in
3914this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003915 </li>
3916 <li>
3917 <span class="entry_type_enum_name">PASSIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003918 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF is
3919currently doing an AF scan initiated by a continuous
3920autofocus mode</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003921 </li>
3922 <li>
3923 <span class="entry_type_enum_name">PASSIVE_FOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003924 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF currently
3925believes it is in focus,<wbr/> but may restart scanning at
3926any time.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003927 </li>
3928 <li>
3929 <span class="entry_type_enum_name">ACTIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003930 <span class="entry_type_enum_notes"><p>if AUTO or MACRO modes are supported.<wbr/> AF is doing
3931an AF scan because it was triggered by AF
3932trigger</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003933 </li>
3934 <li>
3935 <span class="entry_type_enum_name">FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003936 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF
3937believes it is focused correctly and is
3938locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003939 </li>
3940 <li>
3941 <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003942 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF has
3943failed to focus successfully and is
3944locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003945 </li>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003946 <li>
3947 <span class="entry_type_enum_name">PASSIVE_UNFOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003948 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF finished a
3949passive scan without finding focus,<wbr/> and may restart
3950scanning at any time.<wbr/></p></span>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003951 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003952 </ul>
3953
3954 </td> <!-- entry_type -->
3955
3956 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003957 <p>Current state of AF algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003958 </td>
3959
3960 <td class="entry_units">
3961 </td>
3962
3963 <td class="entry_range">
3964 </td>
3965
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003966 <td class="entry_tags">
3967 </td>
3968
3969 </tr>
3970 <tr class="entries_header">
3971 <th class="th_details" colspan="5">Details</th>
3972 </tr>
3973 <tr class="entry_cont">
3974 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003975 <p>Switching between or enabling AF modes (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) always
3976resets the AF state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3977or <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
3978the algorithm states to INACTIVE.<wbr/></p>
3979<p>The camera device can do several state transitions between two results,<wbr/> if it is
3980allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3981seen in a result.<wbr/></p>
3982<p>The state in the result is the state for this image (in sync with this image): if
3983AF state becomes FOCUSED,<wbr/> then the image data associated with this result should
3984be sharp.<wbr/></p>
3985<p>Below are state transition tables for different AF modes.<wbr/></p>
3986<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>
3987<table>
3988<thead>
3989<tr>
3990<th align="center">State</th>
3991<th align="center">Transition Cause</th>
3992<th align="center">New State</th>
3993<th align="center">Notes</th>
3994</tr>
3995</thead>
3996<tbody>
3997<tr>
3998<td align="center">INACTIVE</td>
3999<td align="center"></td>
4000<td align="center">INACTIVE</td>
4001<td align="center">Never changes</td>
4002</tr>
4003</tbody>
4004</table>
4005<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>
4006<table>
4007<thead>
4008<tr>
4009<th align="center">State</th>
4010<th align="center">Transition Cause</th>
4011<th align="center">New State</th>
4012<th align="center">Notes</th>
4013</tr>
4014</thead>
4015<tbody>
4016<tr>
4017<td align="center">INACTIVE</td>
4018<td align="center">AF_<wbr/>TRIGGER</td>
4019<td align="center">ACTIVE_<wbr/>SCAN</td>
4020<td align="center">Start AF sweep,<wbr/> Lens now moving</td>
4021</tr>
4022<tr>
4023<td align="center">ACTIVE_<wbr/>SCAN</td>
4024<td align="center">AF sweep done</td>
4025<td align="center">FOCUSED_<wbr/>LOCKED</td>
4026<td align="center">Focused,<wbr/> Lens now locked</td>
4027</tr>
4028<tr>
4029<td align="center">ACTIVE_<wbr/>SCAN</td>
4030<td align="center">AF sweep done</td>
4031<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4032<td align="center">Not focused,<wbr/> Lens now locked</td>
4033</tr>
4034<tr>
4035<td align="center">ACTIVE_<wbr/>SCAN</td>
4036<td align="center">AF_<wbr/>CANCEL</td>
4037<td align="center">INACTIVE</td>
4038<td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
4039</tr>
4040<tr>
4041<td align="center">FOCUSED_<wbr/>LOCKED</td>
4042<td align="center">AF_<wbr/>CANCEL</td>
4043<td align="center">INACTIVE</td>
4044<td align="center">Cancel/<wbr/>reset AF</td>
4045</tr>
4046<tr>
4047<td align="center">FOCUSED_<wbr/>LOCKED</td>
4048<td align="center">AF_<wbr/>TRIGGER</td>
4049<td align="center">ACTIVE_<wbr/>SCAN</td>
4050<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4051</tr>
4052<tr>
4053<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4054<td align="center">AF_<wbr/>CANCEL</td>
4055<td align="center">INACTIVE</td>
4056<td align="center">Cancel/<wbr/>reset AF</td>
4057</tr>
4058<tr>
4059<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4060<td align="center">AF_<wbr/>TRIGGER</td>
4061<td align="center">ACTIVE_<wbr/>SCAN</td>
4062<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4063</tr>
4064<tr>
4065<td align="center">Any state</td>
4066<td align="center">Mode change</td>
4067<td align="center">INACTIVE</td>
4068<td align="center"></td>
4069</tr>
4070</tbody>
4071</table>
4072<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>
4073<table>
4074<thead>
4075<tr>
4076<th align="center">State</th>
4077<th align="center">Transition Cause</th>
4078<th align="center">New State</th>
4079<th align="center">Notes</th>
4080</tr>
4081</thead>
4082<tbody>
4083<tr>
4084<td align="center">INACTIVE</td>
4085<td align="center">Camera device initiates new scan</td>
4086<td align="center">PASSIVE_<wbr/>SCAN</td>
4087<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4088</tr>
4089<tr>
4090<td align="center">INACTIVE</td>
4091<td align="center">AF_<wbr/>TRIGGER</td>
4092<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4093<td align="center">AF state query,<wbr/> Lens now locked</td>
4094</tr>
4095<tr>
4096<td align="center">PASSIVE_<wbr/>SCAN</td>
4097<td align="center">Camera device completes current scan</td>
4098<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4099<td align="center">End AF scan,<wbr/> Lens now locked</td>
4100</tr>
4101<tr>
4102<td align="center">PASSIVE_<wbr/>SCAN</td>
4103<td align="center">Camera device fails current scan</td>
4104<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4105<td align="center">End AF scan,<wbr/> Lens now locked</td>
4106</tr>
4107<tr>
4108<td align="center">PASSIVE_<wbr/>SCAN</td>
4109<td align="center">AF_<wbr/>TRIGGER</td>
4110<td align="center">FOCUSED_<wbr/>LOCKED</td>
4111<td align="center">Immediate trans.<wbr/> If focus is good,<wbr/> Lens now locked</td>
4112</tr>
4113<tr>
4114<td align="center">PASSIVE_<wbr/>SCAN</td>
4115<td align="center">AF_<wbr/>TRIGGER</td>
4116<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4117<td align="center">Immediate trans.<wbr/> if focus is bad,<wbr/> Lens now locked</td>
4118</tr>
4119<tr>
4120<td align="center">PASSIVE_<wbr/>SCAN</td>
4121<td align="center">AF_<wbr/>CANCEL</td>
4122<td align="center">INACTIVE</td>
4123<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4124</tr>
4125<tr>
4126<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4127<td align="center">Camera device initiates new scan</td>
4128<td align="center">PASSIVE_<wbr/>SCAN</td>
4129<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4130</tr>
4131<tr>
4132<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4133<td align="center">Camera device initiates new scan</td>
4134<td align="center">PASSIVE_<wbr/>SCAN</td>
4135<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4136</tr>
4137<tr>
4138<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4139<td align="center">AF_<wbr/>TRIGGER</td>
4140<td align="center">FOCUSED_<wbr/>LOCKED</td>
4141<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4142</tr>
4143<tr>
4144<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4145<td align="center">AF_<wbr/>TRIGGER</td>
4146<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4147<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4148</tr>
4149<tr>
4150<td align="center">FOCUSED_<wbr/>LOCKED</td>
4151<td align="center">AF_<wbr/>TRIGGER</td>
4152<td align="center">FOCUSED_<wbr/>LOCKED</td>
4153<td align="center">No effect</td>
4154</tr>
4155<tr>
4156<td align="center">FOCUSED_<wbr/>LOCKED</td>
4157<td align="center">AF_<wbr/>CANCEL</td>
4158<td align="center">INACTIVE</td>
4159<td align="center">Restart AF scan</td>
4160</tr>
4161<tr>
4162<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4163<td align="center">AF_<wbr/>TRIGGER</td>
4164<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4165<td align="center">No effect</td>
4166</tr>
4167<tr>
4168<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4169<td align="center">AF_<wbr/>CANCEL</td>
4170<td align="center">INACTIVE</td>
4171<td align="center">Restart AF scan</td>
4172</tr>
4173</tbody>
4174</table>
4175<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>
4176<table>
4177<thead>
4178<tr>
4179<th align="center">State</th>
4180<th align="center">Transition Cause</th>
4181<th align="center">New State</th>
4182<th align="center">Notes</th>
4183</tr>
4184</thead>
4185<tbody>
4186<tr>
4187<td align="center">INACTIVE</td>
4188<td align="center">Camera device initiates new scan</td>
4189<td align="center">PASSIVE_<wbr/>SCAN</td>
4190<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4191</tr>
4192<tr>
4193<td align="center">INACTIVE</td>
4194<td align="center">AF_<wbr/>TRIGGER</td>
4195<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4196<td align="center">AF state query,<wbr/> Lens now locked</td>
4197</tr>
4198<tr>
4199<td align="center">PASSIVE_<wbr/>SCAN</td>
4200<td align="center">Camera device completes current scan</td>
4201<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4202<td align="center">End AF scan,<wbr/> Lens now locked</td>
4203</tr>
4204<tr>
4205<td align="center">PASSIVE_<wbr/>SCAN</td>
4206<td align="center">Camera device fails current scan</td>
4207<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4208<td align="center">End AF scan,<wbr/> Lens now locked</td>
4209</tr>
4210<tr>
4211<td align="center">PASSIVE_<wbr/>SCAN</td>
4212<td align="center">AF_<wbr/>TRIGGER</td>
4213<td align="center">FOCUSED_<wbr/>LOCKED</td>
4214<td align="center">Eventual trans.<wbr/> once focus good,<wbr/> Lens now locked</td>
4215</tr>
4216<tr>
4217<td align="center">PASSIVE_<wbr/>SCAN</td>
4218<td align="center">AF_<wbr/>TRIGGER</td>
4219<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4220<td align="center">Eventual trans.<wbr/> if cannot focus,<wbr/> Lens now locked</td>
4221</tr>
4222<tr>
4223<td align="center">PASSIVE_<wbr/>SCAN</td>
4224<td align="center">AF_<wbr/>CANCEL</td>
4225<td align="center">INACTIVE</td>
4226<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4227</tr>
4228<tr>
4229<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4230<td align="center">Camera device initiates new scan</td>
4231<td align="center">PASSIVE_<wbr/>SCAN</td>
4232<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4233</tr>
4234<tr>
4235<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4236<td align="center">Camera device initiates new scan</td>
4237<td align="center">PASSIVE_<wbr/>SCAN</td>
4238<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4239</tr>
4240<tr>
4241<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4242<td align="center">AF_<wbr/>TRIGGER</td>
4243<td align="center">FOCUSED_<wbr/>LOCKED</td>
4244<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4245</tr>
4246<tr>
4247<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4248<td align="center">AF_<wbr/>TRIGGER</td>
4249<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4250<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4251</tr>
4252<tr>
4253<td align="center">FOCUSED_<wbr/>LOCKED</td>
4254<td align="center">AF_<wbr/>TRIGGER</td>
4255<td align="center">FOCUSED_<wbr/>LOCKED</td>
4256<td align="center">No effect</td>
4257</tr>
4258<tr>
4259<td align="center">FOCUSED_<wbr/>LOCKED</td>
4260<td align="center">AF_<wbr/>CANCEL</td>
4261<td align="center">INACTIVE</td>
4262<td align="center">Restart AF scan</td>
4263</tr>
4264<tr>
4265<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4266<td align="center">AF_<wbr/>TRIGGER</td>
4267<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4268<td align="center">No effect</td>
4269</tr>
4270<tr>
4271<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4272<td align="center">AF_<wbr/>CANCEL</td>
4273<td align="center">INACTIVE</td>
4274<td align="center">Restart AF scan</td>
4275</tr>
4276</tbody>
4277</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004278 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004279 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004280
4281
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004282 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4283 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004284
4285
4286 <tr class="entry" id="dynamic_android.control.afTriggerId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004287 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004288 android.<wbr/>control.<wbr/>af<wbr/>Trigger<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004289 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004290 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004291 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004292
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004293 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004294
4295
4296 </td> <!-- entry_type -->
4297
4298 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004299 <p>The ID sent with the latest
4300CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004301 </td>
4302
4303 <td class="entry_units">
4304 </td>
4305
4306 <td class="entry_range">
Zhijun He7391bb62014-02-05 00:09:04 -08004307 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004308 </td>
4309
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004310 <td class="entry_tags">
4311 </td>
4312
4313 </tr>
4314 <tr class="entries_header">
4315 <th class="th_details" colspan="5">Details</th>
4316 </tr>
4317 <tr class="entry_cont">
4318 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004319 <p>Must be 0 if no CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS trigger
4320received yet by HAL.<wbr/> Always updated even if AF algorithm
4321ignores the trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004322 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004323 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004324
4325
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004326 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4327 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004328
4329
4330 <tr class="entry" id="dynamic_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004331 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004332 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004333 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004334 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004335 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004336
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004337 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004338
4339 <ul class="entry_type_enum">
4340 <li>
4341 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004342 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4343the application-selected color transform matrix
4344(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
4345(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
4346device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004347 </li>
4348 <li>
4349 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004350 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
4351the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
4352and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004353 </li>
4354 <li>
4355 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004356 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4357the camera device uses incandescent light as the assumed scene
4358illumination for white balance.<wbr/> While the exact white balance
4359transforms are up to the camera device,<wbr/> they will approximately
4360match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004361 </li>
4362 <li>
4363 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004364 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4365the camera device uses fluorescent light as the assumed scene
4366illumination for white balance.<wbr/> While the exact white balance
4367transforms are up to the camera device,<wbr/> they will approximately
4368match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004369 </li>
4370 <li>
4371 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004372 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4373the camera device uses warm fluorescent light as the assumed scene
4374illumination for white balance.<wbr/> While the exact white balance
4375transforms are up to the camera device,<wbr/> they will approximately
4376match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004377 </li>
4378 <li>
4379 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004380 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4381the camera device uses daylight light as the assumed scene
4382illumination for white balance.<wbr/> While the exact white balance
4383transforms are up to the camera device,<wbr/> they will approximately
4384match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004385 </li>
4386 <li>
4387 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004388 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4389the camera device uses cloudy daylight light as the assumed scene
4390illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004391 </li>
4392 <li>
4393 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004394 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4395the camera device uses twilight light as the assumed scene
4396illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004397 </li>
4398 <li>
4399 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004400 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4401the camera device uses shade light as the assumed scene
4402illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004403 </li>
4404 </ul>
4405
4406 </td> <!-- entry_type -->
4407
4408 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004409 <p>Whether AWB is currently setting the color
4410transform fields,<wbr/> and what its illumination target
4411is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004412 </td>
4413
4414 <td class="entry_units">
4415 </td>
4416
4417 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08004418 <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004419 </td>
4420
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004421 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004422 <ul class="entry_tags">
4423 <li><a href="#tag_BC">BC</a></li>
4424 <li><a href="#tag_AWB">AWB</a></li>
4425 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004426 </td>
4427
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004428 </tr>
4429 <tr class="entries_header">
4430 <th class="th_details" colspan="5">Details</th>
4431 </tr>
4432 <tr class="entry_cont">
4433 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08004434 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
4435<p>When set to the ON mode,<wbr/> the camera device's auto white balance
4436routine is enabled,<wbr/> overriding the application's selected
4437<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
4438<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4439<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
4440routine is disabled.<wbr/> The applicantion manually controls the white
4441balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
4442and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4443<p>When set to any other modes,<wbr/> the camera device's auto white balance
4444routine is disabled.<wbr/> The camera device uses each particular illumination
4445target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004446 </td>
4447 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004448
4449
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004450 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4451 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004452
4453
4454 <tr class="entry" id="dynamic_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004455 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004456 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004457 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004458 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004459 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004460 <span class="entry_type_container">x</span>
4461
4462 <span class="entry_type_array">
4463 5 x area_count
4464 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004465 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004466
4467
4468 </td> <!-- entry_type -->
4469
4470 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004471 <p>List of areas to use for illuminant
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004472estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004473 </td>
4474
4475 <td class="entry_units">
4476 </td>
4477
4478 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004479 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[1]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004480 </td>
4481
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004482 <td class="entry_tags">
4483 <ul class="entry_tags">
4484 <li><a href="#tag_BC">BC</a></li>
4485 </ul>
4486 </td>
4487
4488 </tr>
4489 <tr class="entries_header">
4490 <th class="th_details" colspan="5">Details</th>
4491 </tr>
4492 <tr class="entry_cont">
4493 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004494 <p>Only used in AUTO mode.<wbr/></p>
4495<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004496xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08004497specified coordinates.<wbr/></p>
4498<p>The coordinate system is based on the active pixel array,<wbr/>
4499with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004500(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
4501<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08004502bottom-right pixel in the active pixel array.<wbr/> The weight
4503should be nonnegative.<wbr/></p>
4504<p>If all regions have 0 weight,<wbr/> then no specific metering area
4505needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004506outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08004507should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004508used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004509 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004510 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004511
4512
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004513 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4514 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004515
4516
4517 <tr class="entry" id="dynamic_android.control.awbState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004518 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004519 android.<wbr/>control.<wbr/>awb<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004520 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004521 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004522 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004523
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004524 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004525
4526 <ul class="entry_type_enum">
4527 <li>
4528 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004529 <span class="entry_type_enum_notes"><p>AWB is not in auto mode.<wbr/> When a camera device is opened,<wbr/> it
4530starts in this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004531 </li>
4532 <li>
4533 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004534 <span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control
Zhijun He92e698d2014-01-13 16:24:31 -08004535values for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004536 </li>
4537 <li>
4538 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004539 <span class="entry_type_enum_notes"><p>AWB has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08004540current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004541 </li>
4542 <li>
4543 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08004544 <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004545 </li>
4546 </ul>
4547
4548 </td> <!-- entry_type -->
4549
4550 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004551 <p>Current state of AWB algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004552 </td>
4553
4554 <td class="entry_units">
4555 </td>
4556
4557 <td class="entry_range">
4558 </td>
4559
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004560 <td class="entry_tags">
4561 </td>
4562
4563 </tr>
4564 <tr class="entries_header">
4565 <th class="th_details" colspan="5">Details</th>
4566 </tr>
4567 <tr class="entry_cont">
4568 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08004569 <p>Switching between or enabling AWB modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) always
4570resets the AWB state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
4571or <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
4572the algorithm states to INACTIVE.<wbr/></p>
4573<p>The camera device can do several state transitions between two results,<wbr/> if it is
4574allowed by the state transition table.<wbr/> So INACTIVE may never actually be seen in
4575a result.<wbr/></p>
4576<p>The state in the result is the state for this image (in sync with this image): if
4577AWB state becomes CONVERGED,<wbr/> then the image data associated with this result should
4578be good to use.<wbr/></p>
4579<p>Below are state transition tables for different AWB modes.<wbr/></p>
4580<p>When <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != AWB_<wbr/>MODE_<wbr/>AUTO</code>:</p>
4581<table>
4582<thead>
4583<tr>
4584<th align="center">State</th>
4585<th align="center">Transition Cause</th>
4586<th align="center">New State</th>
4587<th align="center">Notes</th>
4588</tr>
4589</thead>
4590<tbody>
4591<tr>
4592<td align="center">INACTIVE</td>
4593<td align="center"></td>
4594<td align="center">INACTIVE</td>
4595<td align="center">Camera device auto white balance algorithm is disabled</td>
4596</tr>
4597</tbody>
4598</table>
4599<p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is AWB_<wbr/>MODE_<wbr/>AUTO:</p>
4600<table>
4601<thead>
4602<tr>
4603<th align="center">State</th>
4604<th align="center">Transition Cause</th>
4605<th align="center">New State</th>
4606<th align="center">Notes</th>
4607</tr>
4608</thead>
4609<tbody>
4610<tr>
4611<td align="center">INACTIVE</td>
4612<td align="center">Camera device initiates AWB scan</td>
4613<td align="center">SEARCHING</td>
4614<td align="center">Values changing</td>
4615</tr>
4616<tr>
4617<td align="center">INACTIVE</td>
4618<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4619<td align="center">LOCKED</td>
4620<td align="center">Values locked</td>
4621</tr>
4622<tr>
4623<td align="center">SEARCHING</td>
4624<td align="center">Camera device finishes AWB scan</td>
4625<td align="center">CONVERGED</td>
4626<td align="center">Good values,<wbr/> not changing</td>
4627</tr>
4628<tr>
4629<td align="center">SEARCHING</td>
4630<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4631<td align="center">LOCKED</td>
4632<td align="center">Values locked</td>
4633</tr>
4634<tr>
4635<td align="center">CONVERGED</td>
4636<td align="center">Camera device initiates AWB scan</td>
4637<td align="center">SEARCHING</td>
4638<td align="center">Values changing</td>
4639</tr>
4640<tr>
4641<td align="center">CONVERGED</td>
4642<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4643<td align="center">LOCKED</td>
4644<td align="center">Values locked</td>
4645</tr>
4646<tr>
4647<td align="center">LOCKED</td>
4648<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4649<td align="center">SEARCHING</td>
4650<td align="center">Values not good after unlock</td>
4651</tr>
4652<tr>
4653<td align="center">LOCKED</td>
4654<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4655<td align="center">CONVERGED</td>
4656<td align="center">Values good after unlock</td>
4657</tr>
4658</tbody>
4659</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004660 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004661 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004662
4663
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004664 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4665 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004666
4667
4668 <tr class="entry" id="dynamic_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004669 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004670 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004671 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004672 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004673 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004674
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004675 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004676
4677 <ul class="entry_type_enum">
4678 <li>
4679 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004680 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
4681routines are disabled,<wbr/> no other settings in
4682android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004683 </li>
4684 <li>
4685 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004686 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
4687Manual control of capture parameters is disabled.<wbr/> All
4688controls in android.<wbr/>control.<wbr/>* besides sceneMode take
4689effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004690 </li>
4691 <li>
4692 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004693 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
4694control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
4695controls; the HAL must ignore those settings while
4696USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
4697scene mode).<wbr/> Other control entries are still active.<wbr/>
4698This setting can only be used if availableSceneModes !=
4699UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004700 </li>
4701 </ul>
4702
4703 </td> <!-- entry_type -->
4704
4705 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004706 <p>Overall mode of 3A control
4707routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004708 </td>
4709
4710 <td class="entry_units">
4711 </td>
4712
4713 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004714 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004715 </td>
4716
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004717 <td class="entry_tags">
4718 <ul class="entry_tags">
4719 <li><a href="#tag_BC">BC</a></li>
4720 </ul>
4721 </td>
4722
4723 </tr>
4724 <tr class="entries_header">
4725 <th class="th_details" colspan="5">Details</th>
4726 </tr>
4727 <tr class="entry_cont">
4728 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004729 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004730by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08004731capture parameters itself.<wbr/></p>
4732<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004733android.<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>
Igor Murashkin0b080452013-12-27 15:30:25 -08004734<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004735android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08004736one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004737as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004738<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004739 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004740 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004741
4742
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004743 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4744 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004745
4746
4747
4748 <!-- end of kind -->
4749 </tbody>
4750
4751 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004752 <tr><td colspan="6" id="section_demosaic" class="section">demosaic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004753
4754
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004755 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004756
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004757 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004758 <tr>
4759 <th class="th_name">Property Name</th>
4760 <th class="th_type">Type</th>
4761 <th class="th_description">Description</th>
4762 <th class="th_units">Units</th>
4763 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004764 <th class="th_tags">Tags</th>
4765 </tr>
4766 </thead>
4767
4768 <tbody>
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779 <tr class="entry" id="controls_android.demosaic.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004780 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004781 android.<wbr/>demosaic.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004782 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004783 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004784 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004785
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004786 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004787
4788 <ul class="entry_type_enum">
4789 <li>
4790 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004791 <span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to
4792Bayer RAW output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004793 </li>
4794 <li>
4795 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004796 <span class="entry_type_enum_notes"><p>High-quality may reduce output frame
4797rate</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004798 </li>
4799 </ul>
4800
4801 </td> <!-- entry_type -->
4802
4803 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004804 <p>Controls the quality of the demosaicing
4805processing</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004806 </td>
4807
4808 <td class="entry_units">
4809 </td>
4810
4811 <td class="entry_range">
4812 </td>
4813
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004814 <td class="entry_tags">
4815 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004816 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004817 </ul>
4818 </td>
4819
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004820 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004821
4822
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004823 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4824 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004825
4826
4827
4828 <!-- end of kind -->
4829 </tbody>
4830
4831 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004832 <tr><td colspan="6" id="section_edge" class="section">edge</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004833
4834
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004835 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004836
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004837 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004838 <tr>
4839 <th class="th_name">Property Name</th>
4840 <th class="th_type">Type</th>
4841 <th class="th_description">Description</th>
4842 <th class="th_units">Units</th>
4843 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004844 <th class="th_tags">Tags</th>
4845 </tr>
4846 </thead>
4847
4848 <tbody>
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859 <tr class="entry" id="controls_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004860 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004861 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004862 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004863 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004864 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004865
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004866 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004867
4868 <ul class="entry_type_enum">
4869 <li>
4870 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004871 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004872 </li>
4873 <li>
4874 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004875 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4876output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004877 </li>
4878 <li>
4879 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004880 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4881quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004882 </li>
4883 </ul>
4884
4885 </td> <!-- entry_type -->
4886
4887 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004888 <p>Operation mode for edge
4889enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004890 </td>
4891
4892 <td class="entry_units">
4893 </td>
4894
4895 <td class="entry_range">
4896 </td>
4897
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004898 <td class="entry_tags">
4899 </td>
4900
4901 </tr>
4902 <tr class="entries_header">
4903 <th class="th_details" colspan="5">Details</th>
4904 </tr>
4905 <tr class="entry_cont">
4906 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004907 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
4908enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004909<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08004910will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004911camera device will use the highest-quality enhancement algorithms,<wbr/>
4912even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08004913not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004914 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004915 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004916
4917
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004918 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4919 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004920
4921
4922 <tr class="entry" id="controls_android.edge.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004923 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004924 android.<wbr/>edge.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004925 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004926 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004927 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004928
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004929 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004930
4931
4932 </td> <!-- entry_type -->
4933
4934 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004935 <p>Control the amount of edge enhancement
4936applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004937 </td>
4938
4939 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08004940 1-10; 10 is maximum sharpening
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004941 </td>
4942
4943 <td class="entry_range">
4944 </td>
4945
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004946 <td class="entry_tags">
4947 </td>
4948
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004949 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004950
4951
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004952 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4953 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004954
4955
4956
4957 <!-- end of kind -->
4958 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004959 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004960
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004961 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004962 <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>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004968 <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="dynamic_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004984 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004985 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004986 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004987 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004988 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004989
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004990 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004991
4992 <ul class="entry_type_enum">
4993 <li>
4994 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004995 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004996 </li>
4997 <li>
4998 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004999 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
5000output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005001 </li>
5002 <li>
5003 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005004 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5005quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005006 </li>
5007 </ul>
5008
5009 </td> <!-- entry_type -->
5010
5011 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005012 <p>Operation mode for edge
5013enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005014 </td>
5015
5016 <td class="entry_units">
5017 </td>
5018
5019 <td class="entry_range">
5020 </td>
5021
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005022 <td class="entry_tags">
5023 </td>
5024
5025 </tr>
5026 <tr class="entries_header">
5027 <th class="th_details" colspan="5">Details</th>
5028 </tr>
5029 <tr class="entry_cont">
5030 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005031 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
5032enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005033<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08005034will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005035camera device will use the highest-quality enhancement algorithms,<wbr/>
5036even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08005037not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005038 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005039 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005040
5041
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005042 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5043 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005044
5045
5046
5047 <!-- end of kind -->
5048 </tbody>
5049
5050 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005051 <tr><td colspan="6" id="section_flash" class="section">flash</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005052
5053
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005054 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005055
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005056 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005057 <tr>
5058 <th class="th_name">Property Name</th>
5059 <th class="th_type">Type</th>
5060 <th class="th_description">Description</th>
5061 <th class="th_units">Units</th>
5062 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005063 <th class="th_tags">Tags</th>
5064 </tr>
5065 </thead>
5066
5067 <tbody>
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078 <tr class="entry" id="controls_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005079 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005080 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005081 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005082 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005083 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005084
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005085 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005086
5087
5088 </td> <!-- entry_type -->
5089
5090 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005091 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005092 </td>
5093
5094 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005095 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005096 </td>
5097
5098 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005099 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005100 </td>
5101
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005102 <td class="entry_tags">
5103 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005104 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005105 </ul>
5106 </td>
5107
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005108 </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">
Igor Murashkin0b080452013-12-27 15:30:25 -08005114 <p>Power for snapshot may use a different scale than
5115for torch mode.<wbr/> Only one entry for torch mode will be
5116used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005117 </td>
5118 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005119
5120
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005121 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5122 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005123
5124
5125 <tr class="entry" id="controls_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005126 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005127 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005128 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005129 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005130 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005131
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005132 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005133
5134
5135 </td> <!-- entry_type -->
5136
5137 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005138 <p>Firing time of flash relative to start of
5139exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005140 </td>
5141
5142 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005143 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005144 </td>
5145
5146 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005147 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005148 </td>
5149
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005150 <td class="entry_tags">
5151 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005152 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005153 </ul>
5154 </td>
5155
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005156 </tr>
5157 <tr class="entries_header">
5158 <th class="th_details" colspan="5">Details</th>
5159 </tr>
5160 <tr class="entry_cont">
5161 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005162 <p>Clamped to (0,<wbr/> exposure time - flash
5163duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005164 </td>
5165 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005166
5167
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005168 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5169 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005170
5171
5172 <tr class="entry" id="controls_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005173 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005174 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005175 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005176 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005177 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005178
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005179 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005180
5181 <ul class="entry_type_enum">
5182 <li>
5183 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005184 <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005185 </li>
5186 <li>
5187 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005188 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5189for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5190<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005191 </li>
5192 <li>
5193 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005194 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005195 </li>
5196 </ul>
5197
5198 </td> <!-- entry_type -->
5199
5200 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005201 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005202 </td>
5203
5204 <td class="entry_units">
5205 </td>
5206
5207 <td class="entry_range">
5208 </td>
5209
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005210 <td class="entry_tags">
5211 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005212 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005213 </ul>
5214 </td>
5215
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005216 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005217 <tr class="entries_header">
5218 <th class="th_details" colspan="5">Details</th>
5219 </tr>
5220 <tr class="entry_cont">
5221 <td class="entry_details" colspan="5">
5222 <p>This control is only effective when flash unit is available
Zhijun Hebdc94c42014-01-21 18:28:30 -08005223(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == true</code>).<wbr/></p>
Zhijun Heea27bc32014-01-15 13:47:59 -08005224<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/>
5225Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5226ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5227<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5228<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5229device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5230control should be used along with AE precapture metering sequence
5231(<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>
5232<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5233for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08005234<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>
Zhijun Heea27bc32014-01-15 13:47:59 -08005235 </td>
5236 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005237
5238
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005239 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5240 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005241
5242
5243
5244 <!-- end of kind -->
5245 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005246 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005247
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005248 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005249 <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>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005255 <th class="th_tags">Tags</th>
5256 </tr>
5257 </thead>
5258
5259 <tbody>
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272 <tr class="entry" id="static_android.flash.info.available">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005273 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005274 android.<wbr/>flash.<wbr/>info.<wbr/>available
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005275 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005276 <td class="entry_type">
Zhijun He5169ce12014-01-24 16:48:25 -08005277 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005278
Zhijun He5169ce12014-01-24 16:48:25 -08005279 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005280
Zhijun He5169ce12014-01-24 16:48:25 -08005281 <ul class="entry_type_enum">
5282 <li>
5283 <span class="entry_type_enum_name">FALSE</span>
5284 </li>
5285 <li>
5286 <span class="entry_type_enum_name">TRUE</span>
5287 </li>
5288 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005289
5290 </td> <!-- entry_type -->
5291
5292 <td class="entry_description">
Zhijun He5169ce12014-01-24 16:48:25 -08005293 <p>Whether this camera device has a
5294flash.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005295 </td>
5296
5297 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005298 </td>
5299
5300 <td class="entry_range">
5301 </td>
5302
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005303 <td class="entry_tags">
5304 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005305 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005306 </ul>
5307 </td>
5308
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005309 </tr>
5310 <tr class="entries_header">
5311 <th class="th_details" colspan="5">Details</th>
5312 </tr>
5313 <tr class="entry_cont">
5314 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005315 <p>If no flash,<wbr/> none of the flash controls do
Zhijun He5169ce12014-01-24 16:48:25 -08005316anything.<wbr/> All other metadata should return 0.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005317 </td>
5318 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005319
5320
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005321 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5322 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005323
5324
5325 <tr class="entry" id="static_android.flash.info.chargeDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005326 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005327 android.<wbr/>flash.<wbr/>info.<wbr/>charge<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005328 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005329 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005330 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005331
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005332 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005333
5334
5335 </td> <!-- entry_type -->
5336
5337 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005338 <p>Time taken before flash can fire
5339again</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005340 </td>
5341
5342 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005343 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005344 </td>
5345
5346 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005347 <p>0-1e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005348 </td>
5349
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005350 <td class="entry_tags">
5351 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005352 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005353 </ul>
5354 </td>
5355
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005356 </tr>
5357 <tr class="entries_header">
5358 <th class="th_details" colspan="5">Details</th>
5359 </tr>
5360 <tr class="entry_cont">
5361 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005362 <p>1 second too long/<wbr/>too short for recharge? Should
5363this be power-dependent?</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005364 </td>
5365 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005366
5367
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005368 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5369 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005370
5371
5372
5373
5374
5375 <tr class="entry" id="static_android.flash.colorTemperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005376 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005377 android.<wbr/>flash.<wbr/>color<wbr/>Temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005378 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005379 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005380 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005381
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005382 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005383
5384
5385 </td> <!-- entry_type -->
5386
5387 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005388 <p>The x,<wbr/>y whitepoint of the
5389flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005390 </td>
5391
5392 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005393 pair of floats
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005394 </td>
5395
5396 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005397 <p>0-1 for both</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005398 </td>
5399
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005400 <td class="entry_tags">
5401 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005402 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005403 </ul>
5404 </td>
5405
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005406 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005407
5408
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005409 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5410 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005411
5412
5413 <tr class="entry" id="static_android.flash.maxEnergy">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005414 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005415 android.<wbr/>flash.<wbr/>max<wbr/>Energy
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005416 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005417 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005418 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005419
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005420 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005421
5422
5423 </td> <!-- entry_type -->
5424
5425 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005426 <p>Max energy output of the flash for a full
5427power single flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005428 </td>
5429
5430 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005431 lumen-seconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005432 </td>
5433
5434 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08005435 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005436 </td>
5437
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005438 <td class="entry_tags">
5439 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005440 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005441 </ul>
5442 </td>
5443
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005444 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005445
5446
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005447 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5448 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005449
5450
5451
5452 <!-- end of kind -->
5453 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005454 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005455
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005456 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005457 <tr>
5458 <th class="th_name">Property Name</th>
5459 <th class="th_type">Type</th>
5460 <th class="th_description">Description</th>
5461 <th class="th_units">Units</th>
5462 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005463 <th class="th_tags">Tags</th>
5464 </tr>
5465 </thead>
5466
5467 <tbody>
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478 <tr class="entry" id="dynamic_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005479 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005480 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005481 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005482 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005483 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005484
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005485 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005486
5487
5488 </td> <!-- entry_type -->
5489
5490 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005491 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005492 </td>
5493
5494 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005495 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005496 </td>
5497
5498 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005499 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005500 </td>
5501
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005502 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005503 <ul class="entry_tags">
5504 <li><a href="#tag_V1">V1</a></li>
5505 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005506 </td>
5507
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005508 </tr>
5509 <tr class="entries_header">
5510 <th class="th_details" colspan="5">Details</th>
5511 </tr>
5512 <tr class="entry_cont">
5513 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005514 <p>Power for snapshot may use a different scale than
5515for torch mode.<wbr/> Only one entry for torch mode will be
5516used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005517 </td>
5518 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005519
5520
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005521 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5522 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005523
5524
5525 <tr class="entry" id="dynamic_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005526 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005527 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005528 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005529 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005530 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005531
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005532 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005533
5534
5535 </td> <!-- entry_type -->
5536
5537 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005538 <p>Firing time of flash relative to start of
5539exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005540 </td>
5541
5542 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005543 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005544 </td>
5545
5546 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005547 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005548 </td>
5549
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005550 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005551 <ul class="entry_tags">
5552 <li><a href="#tag_V1">V1</a></li>
5553 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005554 </td>
5555
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005556 </tr>
5557 <tr class="entries_header">
5558 <th class="th_details" colspan="5">Details</th>
5559 </tr>
5560 <tr class="entry_cont">
5561 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005562 <p>Clamped to (0,<wbr/> exposure time - flash
5563duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005564 </td>
5565 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005566
5567
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005568 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5569 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005570
5571
5572 <tr class="entry" id="dynamic_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005573 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005574 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005575 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005576 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005577 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005578
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005579 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005580
5581 <ul class="entry_type_enum">
5582 <li>
5583 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005584 <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005585 </li>
5586 <li>
5587 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005588 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5589for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5590<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005591 </li>
5592 <li>
5593 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005594 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005595 </li>
5596 </ul>
5597
5598 </td> <!-- entry_type -->
5599
5600 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005601 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005602 </td>
5603
5604 <td class="entry_units">
5605 </td>
5606
5607 <td class="entry_range">
5608 </td>
5609
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005610 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005611 <ul class="entry_tags">
5612 <li><a href="#tag_BC">BC</a></li>
5613 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005614 </td>
5615
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005616 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005617 <tr class="entries_header">
5618 <th class="th_details" colspan="5">Details</th>
5619 </tr>
5620 <tr class="entry_cont">
5621 <td class="entry_details" colspan="5">
5622 <p>This control is only effective when flash unit is available
Zhijun Hebdc94c42014-01-21 18:28:30 -08005623(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == true</code>).<wbr/></p>
Zhijun Heea27bc32014-01-15 13:47:59 -08005624<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/>
5625Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5626ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5627<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5628<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5629device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5630control should be used along with AE precapture metering sequence
5631(<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>
5632<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5633for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08005634<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>
Zhijun Heea27bc32014-01-15 13:47:59 -08005635 </td>
5636 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005637
5638
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005639 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5640 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005641
5642
5643 <tr class="entry" id="dynamic_android.flash.state">
Zhijun He5169ce12014-01-24 16:48:25 -08005644 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005645 android.<wbr/>flash.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005646 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005647 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005648 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005649
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005650 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005651
5652 <ul class="entry_type_enum">
5653 <li>
5654 <span class="entry_type_enum_name">UNAVAILABLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005655 <span class="entry_type_enum_notes"><p>No flash on camera</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005656 </li>
5657 <li>
5658 <span class="entry_type_enum_name">CHARGING</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005659 <span class="entry_type_enum_notes"><p>if <a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is true Flash is
Igor Murashkina10351a2014-01-15 17:05:22 -08005660charging and cannot be fired</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005661 </li>
5662 <li>
5663 <span class="entry_type_enum_name">READY</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005664 <span class="entry_type_enum_notes"><p>if <a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is true Flash is
Igor Murashkina10351a2014-01-15 17:05:22 -08005665ready to fire</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005666 </li>
5667 <li>
5668 <span class="entry_type_enum_name">FIRED</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005669 <span class="entry_type_enum_notes"><p>if <a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is true Flash fired
Igor Murashkina10351a2014-01-15 17:05:22 -08005670for this capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005671 </li>
5672 </ul>
5673
5674 </td> <!-- entry_type -->
5675
5676 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005677 <p>Current state of the flash
Zhijun He5169ce12014-01-24 16:48:25 -08005678unit.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005679 </td>
5680
5681 <td class="entry_units">
5682 </td>
5683
5684 <td class="entry_range">
5685 </td>
5686
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005687 <td class="entry_tags">
5688 </td>
5689
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005690 </tr>
Zhijun He5169ce12014-01-24 16:48:25 -08005691 <tr class="entries_header">
5692 <th class="th_details" colspan="5">Details</th>
5693 </tr>
5694 <tr class="entry_cont">
5695 <td class="entry_details" colspan="5">
5696 <p>When the camera device doesn't have flash unit
5697(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/>
5698Other states indicate the current flash status.<wbr/></p>
5699 </td>
5700 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005701
5702
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005703 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5704 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005705
5706
5707
5708 <!-- end of kind -->
5709 </tbody>
5710
5711 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005712 <tr><td colspan="6" id="section_geometric" class="section">geometric</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005713
5714
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005715 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005716
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005717 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005718 <tr>
5719 <th class="th_name">Property Name</th>
5720 <th class="th_type">Type</th>
5721 <th class="th_description">Description</th>
5722 <th class="th_units">Units</th>
5723 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005724 <th class="th_tags">Tags</th>
5725 </tr>
5726 </thead>
5727
5728 <tbody>
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739 <tr class="entry" id="controls_android.geometric.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005740 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005741 android.<wbr/>geometric.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005742 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005743 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005744 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005745
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005746 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005747
5748 <ul class="entry_type_enum">
5749 <li>
5750 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005751 <span class="entry_type_enum_notes"><p>No geometric correction is
5752applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005753 </li>
5754 <li>
5755 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005756 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw
5757bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005758 </li>
5759 <li>
5760 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005761 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5762quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005763 </li>
5764 </ul>
5765
5766 </td> <!-- entry_type -->
5767
5768 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005769 <p>Operating mode of geometric
5770correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005771 </td>
5772
5773 <td class="entry_units">
5774 </td>
5775
5776 <td class="entry_range">
5777 </td>
5778
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005779 <td class="entry_tags">
5780 </td>
5781
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005782 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005783
5784
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005785 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5786 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005787
5788
5789 <tr class="entry" id="controls_android.geometric.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005790 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005791 android.<wbr/>geometric.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005792 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005793 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005794 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005795
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005796 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005797
5798
5799 </td> <!-- entry_type -->
5800
5801 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005802 <p>Control the amount of shading correction
5803applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005804 </td>
5805
5806 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005807 unitless: 1-10; 10 is full shading
5808 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005809 </td>
5810
5811 <td class="entry_range">
5812 </td>
5813
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005814 <td class="entry_tags">
5815 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005816 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005817 </ul>
5818 </td>
5819
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005820 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005821
5822
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005823 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5824 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005825
5826
5827
5828 <!-- end of kind -->
5829 </tbody>
5830
5831 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005832 <tr><td colspan="6" id="section_hotPixel" class="section">hotPixel</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005833
5834
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005835 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005836
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005837 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005838 <tr>
5839 <th class="th_name">Property Name</th>
5840 <th class="th_type">Type</th>
5841 <th class="th_description">Description</th>
5842 <th class="th_units">Units</th>
5843 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005844 <th class="th_tags">Tags</th>
5845 </tr>
5846 </thead>
5847
5848 <tbody>
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859 <tr class="entry" id="controls_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005860 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005861 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005862 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005863 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005864 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005865
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005866 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005867
5868 <ul class="entry_type_enum">
5869 <li>
5870 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005871 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
5872applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005873 </li>
5874 <li>
5875 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005876 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
5877Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005878 </li>
5879 <li>
5880 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005881 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5882quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005883 </li>
5884 </ul>
5885
5886 </td> <!-- entry_type -->
5887
5888 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005889 <p>Set operational mode for hot pixel
5890correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005891 </td>
5892
5893 <td class="entry_units">
5894 </td>
5895
5896 <td class="entry_range">
5897 </td>
5898
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005899 <td class="entry_tags">
5900 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005901 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005902 </ul>
5903 </td>
5904
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005905 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005906
5907
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005908 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5909 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005910
5911
5912
5913 <!-- end of kind -->
5914 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005915 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005916
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005917 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005918 <tr>
5919 <th class="th_name">Property Name</th>
5920 <th class="th_type">Type</th>
5921 <th class="th_description">Description</th>
5922 <th class="th_units">Units</th>
5923 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005924 <th class="th_tags">Tags</th>
5925 </tr>
5926 </thead>
5927
5928 <tbody>
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941 <tr class="entry" id="static_android.hotPixel.info.map">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005942 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005943 android.<wbr/>hot<wbr/>Pixel.<wbr/>info.<wbr/>map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005944 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005945 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005946 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005947 <span class="entry_type_container">x</span>
5948
5949 <span class="entry_type_array">
5950 2 x n
5951 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005952 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08005953 <div class="entry_type_notes">list of coordinates based on android.<wbr/>sensor.<wbr/>pixel<wbr/>Array<wbr/>Size</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005954
5955
5956 </td> <!-- entry_type -->
5957
5958 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005959 <p>Location of hot/<wbr/>defective pixels on
5960sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005961 </td>
5962
5963 <td class="entry_units">
5964 </td>
5965
5966 <td class="entry_range">
5967 </td>
5968
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005969 <td class="entry_tags">
5970 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005971 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005972 </ul>
5973 </td>
5974
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005975 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005976
5977
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005978 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5979 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005980
5981
5982
5983
5984
5985
5986 <!-- end of kind -->
5987 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005988 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005989
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005990 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005991 <tr>
5992 <th class="th_name">Property Name</th>
5993 <th class="th_type">Type</th>
5994 <th class="th_description">Description</th>
5995 <th class="th_units">Units</th>
5996 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005997 <th class="th_tags">Tags</th>
5998 </tr>
5999 </thead>
6000
6001 <tbody>
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012 <tr class="entry" id="dynamic_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006013 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006014 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006015 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006016 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006017 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006018
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006019 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006020
6021 <ul class="entry_type_enum">
6022 <li>
6023 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006024 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
6025applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006026 </li>
6027 <li>
6028 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006029 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
6030Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006031 </li>
6032 <li>
6033 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006034 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
6035quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006036 </li>
6037 </ul>
6038
6039 </td> <!-- entry_type -->
6040
6041 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006042 <p>Set operational mode for hot pixel
6043correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006044 </td>
6045
6046 <td class="entry_units">
6047 </td>
6048
6049 <td class="entry_range">
6050 </td>
6051
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006052 <td class="entry_tags">
6053 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006054 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006055 </ul>
6056 </td>
6057
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006058 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006059
6060
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006061 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6062 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006063
6064
6065
6066 <!-- end of kind -->
6067 </tbody>
6068
6069 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006070 <tr><td colspan="6" id="section_jpeg" class="section">jpeg</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006071
6072
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006073 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006074
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006075 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006076 <tr>
6077 <th class="th_name">Property Name</th>
6078 <th class="th_type">Type</th>
6079 <th class="th_description">Description</th>
6080 <th class="th_units">Units</th>
6081 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006082 <th class="th_tags">Tags</th>
6083 </tr>
6084 </thead>
6085
6086 <tbody>
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097 <tr class="entry" id="controls_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006098 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006099 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006100 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006101 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006102 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006103 <span class="entry_type_container">x</span>
6104
6105 <span class="entry_type_array">
6106 3
6107 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006108 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006109 <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006110
6111
6112 </td> <!-- entry_type -->
6113
6114 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006115 <p>GPS coordinates to include in output JPEG
6116EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006117 </td>
6118
6119 <td class="entry_units">
6120 </td>
6121
6122 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006123 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006124 </td>
6125
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006126 <td class="entry_tags">
6127 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006128 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006129 </ul>
6130 </td>
6131
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006132 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006133
6134
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006135 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6136 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006137
6138
6139 <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006140 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006141 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006142 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006143 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006144 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006145
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006146 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006147
6148
6149 </td> <!-- entry_type -->
6150
6151 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006152 <p>32 characters describing GPS algorithm to
6153include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006154 </td>
6155
6156 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006157 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006158 </td>
6159
6160 <td class="entry_range">
6161 </td>
6162
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006163 <td class="entry_tags">
6164 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006165 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006166 </ul>
6167 </td>
6168
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006169 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006170
6171
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006172 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6173 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006174
6175
6176 <tr class="entry" id="controls_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006177 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006178 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006179 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006180 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006181 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006182
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006183 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006184
6185
6186 </td> <!-- entry_type -->
6187
6188 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006189 <p>Time GPS fix was made to include in
6190EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006191 </td>
6192
6193 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006194 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006195 </td>
6196
6197 <td class="entry_range">
6198 </td>
6199
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006200 <td class="entry_tags">
6201 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006202 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006203 </ul>
6204 </td>
6205
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006206 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006207
6208
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006209 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6210 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006211
6212
6213 <tr class="entry" id="controls_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006214 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006215 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006216 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006217 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006218 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006219
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006220 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006221
6222
6223 </td> <!-- entry_type -->
6224
6225 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006226 <p>Orientation of JPEG image to
6227write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006228 </td>
6229
6230 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006231 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006232 </td>
6233
6234 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006235 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006236 </td>
6237
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006238 <td class="entry_tags">
6239 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006240 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006241 </ul>
6242 </td>
6243
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006244 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006245
6246
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006247 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6248 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006249
6250
6251 <tr class="entry" id="controls_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006252 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006253 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006254 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006255 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006256 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006257
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006258 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006259
6260
6261 </td> <!-- entry_type -->
6262
6263 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006264 <p>Compression quality of the final JPEG
6265image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006266 </td>
6267
6268 <td class="entry_units">
6269 </td>
6270
6271 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006272 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006273 </td>
6274
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006275 <td class="entry_tags">
6276 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006277 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006278 </ul>
6279 </td>
6280
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006281 </tr>
6282 <tr class="entries_header">
6283 <th class="th_details" colspan="5">Details</th>
6284 </tr>
6285 <tr class="entry_cont">
6286 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006287 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006288 </td>
6289 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006290
6291
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006292 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6293 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006294
6295
6296 <tr class="entry" id="controls_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006297 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006298 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006299 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006300 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006301 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006302
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006303 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006304
6305
6306 </td> <!-- entry_type -->
6307
6308 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006309 <p>Compression quality of JPEG
6310thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006311 </td>
6312
6313 <td class="entry_units">
6314 </td>
6315
6316 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006317 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006318 </td>
6319
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006320 <td class="entry_tags">
6321 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006322 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006323 </ul>
6324 </td>
6325
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006326 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006327
6328
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006329 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6330 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006331
6332
6333 <tr class="entry" id="controls_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006334 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006335 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006336 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006337 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006338 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006339 <span class="entry_type_container">x</span>
6340
6341 <span class="entry_type_array">
6342 2
6343 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006344 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006345
6346
6347 </td> <!-- entry_type -->
6348
6349 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006350 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006351 </td>
6352
6353 <td class="entry_units">
6354 </td>
6355
6356 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006357 <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>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006358 </td>
6359
6360 <td class="entry_tags">
6361 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006362 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006363 </ul>
6364 </td>
6365
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006366 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006367 <tr class="entries_header">
6368 <th class="th_details" colspan="5">Details</th>
6369 </tr>
6370 <tr class="entry_cont">
6371 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006372 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6373but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006374<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6375the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006376 </td>
6377 </tr>
6378
6379
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006380 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6381 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006382
6383
6384
6385 <!-- end of kind -->
6386 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006387 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006388
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006389 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006390 <tr>
6391 <th class="th_name">Property Name</th>
6392 <th class="th_type">Type</th>
6393 <th class="th_description">Description</th>
6394 <th class="th_units">Units</th>
6395 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006396 <th class="th_tags">Tags</th>
6397 </tr>
6398 </thead>
6399
6400 <tbody>
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411 <tr class="entry" id="static_android.jpeg.availableThumbnailSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006412 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006413 android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006414 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006415 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006416 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006417 <span class="entry_type_container">x</span>
6418
6419 <span class="entry_type_array">
6420 2 x n
6421 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006422 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006423
6424
6425 </td> <!-- entry_type -->
6426
6427 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006428 <p>Supported resolutions for the JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006429 </td>
6430
6431 <td class="entry_units">
6432 </td>
6433
6434 <td class="entry_range">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006435 <p>Will include at least one valid resolution,<wbr/> plus
6436(0,<wbr/>0) for no thumbnail generation,<wbr/> and each size will be distinct.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006437 </td>
6438
6439 <td class="entry_tags">
6440 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006441 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006442 </ul>
6443 </td>
6444
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006445 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006446 <tr class="entries_header">
6447 <th class="th_details" colspan="5">Details</th>
6448 </tr>
6449 <tr class="entry_cont">
6450 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006451 <p>Below condiditions will be satisfied for this size list:</p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006452<ul>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006453<li>The sizes will be sorted by increasing pixel area (width x height).<wbr/>
6454If several resolutions have the same area,<wbr/> they will be sorted by increasing width.<wbr/></li>
6455<li>The aspect ratio of the largest thumbnail size will be same as the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006456aspect ratio of largest size in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a>.<wbr/>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006457The largest size is defined as the size that has the largest pixel area
Igor Murashkin0b080452013-12-27 15:30:25 -08006458in a given size list.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006459<li>Each size in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a> will have at least
Igor Murashkin0b080452013-12-27 15:30:25 -08006460one corresponding size that has the same aspect ratio in availableThumbnailSizes,<wbr/>
6461and vice versa.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006462<li>All non (0,<wbr/> 0) sizes will have non-zero widths and heights.<wbr/></li>
Igor Murashkin0b080452013-12-27 15:30:25 -08006463</ul>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006464 </td>
6465 </tr>
6466
6467
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006468 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6469 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006470
6471
6472 <tr class="entry" id="static_android.jpeg.maxSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006473 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006474 android.<wbr/>jpeg.<wbr/>max<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006475 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006476 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006477 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006478
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006479 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006480
6481
6482 </td> <!-- entry_type -->
6483
6484 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006485 <p>Maximum size in bytes for the compressed
6486JPEG buffer</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006487 </td>
6488
6489 <td class="entry_units">
6490 </td>
6491
6492 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006493 <p>Must be large enough to fit any JPEG produced by
6494the camera</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006495 </td>
6496
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006497 <td class="entry_tags">
6498 </td>
6499
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006500 </tr>
6501 <tr class="entries_header">
6502 <th class="th_details" colspan="5">Details</th>
6503 </tr>
6504 <tr class="entry_cont">
6505 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006506 <p>This is used for sizing the gralloc buffers for
6507JPEG</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006508 </td>
6509 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006510
6511
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006512 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6513 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006514
6515
6516
6517 <!-- end of kind -->
6518 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006519 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006520
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006521 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006522 <tr>
6523 <th class="th_name">Property Name</th>
6524 <th class="th_type">Type</th>
6525 <th class="th_description">Description</th>
6526 <th class="th_units">Units</th>
6527 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006528 <th class="th_tags">Tags</th>
6529 </tr>
6530 </thead>
6531
6532 <tbody>
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543 <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006544 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006545 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006546 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006547 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006548 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006549 <span class="entry_type_container">x</span>
6550
6551 <span class="entry_type_array">
6552 3
6553 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006554 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006555 <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006556
6557
6558 </td> <!-- entry_type -->
6559
6560 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006561 <p>GPS coordinates to include in output JPEG
6562EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006563 </td>
6564
6565 <td class="entry_units">
6566 </td>
6567
6568 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006569 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006570 </td>
6571
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006572 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006573 <ul class="entry_tags">
6574 <li><a href="#tag_BC">BC</a></li>
6575 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006576 </td>
6577
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006578 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006579
6580
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006581 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6582 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006583
6584
6585 <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006586 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006587 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006588 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006589 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006590 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006591
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006592 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006593
6594
6595 </td> <!-- entry_type -->
6596
6597 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006598 <p>32 characters describing GPS algorithm to
6599include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006600 </td>
6601
6602 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006603 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006604 </td>
6605
6606 <td class="entry_range">
6607 </td>
6608
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006609 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006610 <ul class="entry_tags">
6611 <li><a href="#tag_BC">BC</a></li>
6612 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006613 </td>
6614
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006615 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006616
6617
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006618 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6619 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006620
6621
6622 <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006623 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006624 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006625 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006626 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006627 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006628
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006629 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006630
6631
6632 </td> <!-- entry_type -->
6633
6634 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006635 <p>Time GPS fix was made to include in
6636EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006637 </td>
6638
6639 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006640 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006641 </td>
6642
6643 <td class="entry_range">
6644 </td>
6645
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006646 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006647 <ul class="entry_tags">
6648 <li><a href="#tag_BC">BC</a></li>
6649 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006650 </td>
6651
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006652 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006653
6654
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006655 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6656 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006657
6658
6659 <tr class="entry" id="dynamic_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006660 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006661 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006662 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006663 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006664 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006665
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006666 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006667
6668
6669 </td> <!-- entry_type -->
6670
6671 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006672 <p>Orientation of JPEG image to
6673write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006674 </td>
6675
6676 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006677 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006678 </td>
6679
6680 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006681 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006682 </td>
6683
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006684 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006685 <ul class="entry_tags">
6686 <li><a href="#tag_BC">BC</a></li>
6687 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006688 </td>
6689
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006690 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006691
6692
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006693 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6694 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006695
6696
6697 <tr class="entry" id="dynamic_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006698 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006699 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006700 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006701 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006702 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006703
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006704 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006705
6706
6707 </td> <!-- entry_type -->
6708
6709 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006710 <p>Compression quality of the final JPEG
6711image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006712 </td>
6713
6714 <td class="entry_units">
6715 </td>
6716
6717 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006718 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006719 </td>
6720
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006721 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006722 <ul class="entry_tags">
6723 <li><a href="#tag_BC">BC</a></li>
6724 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006725 </td>
6726
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006727 </tr>
6728 <tr class="entries_header">
6729 <th class="th_details" colspan="5">Details</th>
6730 </tr>
6731 <tr class="entry_cont">
6732 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006733 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006734 </td>
6735 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006736
6737
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006738 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6739 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006740
6741
6742 <tr class="entry" id="dynamic_android.jpeg.size">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006743 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006744 android.<wbr/>jpeg.<wbr/>size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006745 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006746 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006747 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006748
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006749 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006750
6751
6752 </td> <!-- entry_type -->
6753
6754 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006755 <p>The size of the compressed JPEG image,<wbr/> in
6756bytes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006757 </td>
6758
6759 <td class="entry_units">
6760 </td>
6761
6762 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08006763 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006764 </td>
6765
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006766 <td class="entry_tags">
6767 </td>
6768
6769 </tr>
6770 <tr class="entries_header">
6771 <th class="th_details" colspan="5">Details</th>
6772 </tr>
6773 <tr class="entry_cont">
6774 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006775 <p>If no JPEG output is produced for the request,<wbr/>
6776this must be 0.<wbr/></p>
6777<p>Otherwise,<wbr/> this describes the real size of the compressed
6778JPEG image placed in the output stream.<wbr/> More specifically,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006779if <a href="#static_android.jpeg.maxSize">android.<wbr/>jpeg.<wbr/>max<wbr/>Size</a> = 1000000,<wbr/> and a specific capture
6780has <a href="#dynamic_android.jpeg.size">android.<wbr/>jpeg.<wbr/>size</a> = 500000,<wbr/> then the output buffer from
Igor Murashkin0b080452013-12-27 15:30:25 -08006781the JPEG stream will be 1000000 bytes,<wbr/> of which the first
6782500000 make up the real data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006783 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006784 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006785
6786
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006787 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6788 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006789
6790
6791 <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006792 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006793 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006794 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006795 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006796 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006797
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006798 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006799
6800
6801 </td> <!-- entry_type -->
6802
6803 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006804 <p>Compression quality of JPEG
6805thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006806 </td>
6807
6808 <td class="entry_units">
6809 </td>
6810
6811 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006812 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006813 </td>
6814
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006815 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006816 <ul class="entry_tags">
6817 <li><a href="#tag_BC">BC</a></li>
6818 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006819 </td>
6820
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006821 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006822
6823
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006824 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6825 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006826
6827
6828 <tr class="entry" id="dynamic_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006829 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006830 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006831 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006832 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006833 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006834 <span class="entry_type_container">x</span>
6835
6836 <span class="entry_type_array">
6837 2
6838 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006839 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006840
6841
6842 </td> <!-- entry_type -->
6843
6844 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006845 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006846 </td>
6847
6848 <td class="entry_units">
6849 </td>
6850
6851 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006852 <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>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006853 </td>
6854
6855 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006856 <ul class="entry_tags">
6857 <li><a href="#tag_BC">BC</a></li>
6858 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006859 </td>
6860
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006861 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006862 <tr class="entries_header">
6863 <th class="th_details" colspan="5">Details</th>
6864 </tr>
6865 <tr class="entry_cont">
6866 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006867 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6868but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006869<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6870the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006871 </td>
6872 </tr>
6873
6874
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006875 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6876 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006877
6878
6879
6880 <!-- end of kind -->
6881 </tbody>
6882
6883 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006884 <tr><td colspan="6" id="section_lens" class="section">lens</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006885
6886
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006887 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006888
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006889 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006890 <tr>
6891 <th class="th_name">Property Name</th>
6892 <th class="th_type">Type</th>
6893 <th class="th_description">Description</th>
6894 <th class="th_units">Units</th>
6895 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006896 <th class="th_tags">Tags</th>
6897 </tr>
6898 </thead>
6899
6900 <tbody>
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911 <tr class="entry" id="controls_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006912 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006913 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006914 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006915 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006916 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006917
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006918 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006919
6920
6921 </td> <!-- entry_type -->
6922
6923 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08006924 <p>The ratio of lens focal length to the effective
6925aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006926 </td>
6927
6928 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006929 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006930 </td>
6931
6932 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006933 <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006934 </td>
6935
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006936 <td class="entry_tags">
6937 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006938 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006939 </ul>
6940 </td>
6941
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006942 </tr>
6943 <tr class="entries_header">
6944 <th class="th_details" colspan="5">Details</th>
6945 </tr>
6946 <tr class="entry_cont">
6947 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08006948 <p>This will only be supported on the camera devices that
6949have variable aperture lens.<wbr/> The aperture value can only be
6950one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
6951<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
6952this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
6953<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
6954to achieve manual exposure control.<wbr/></p>
6955<p>The requested aperture value may take several frames to reach the
6956requested value; the camera device will report the current (intermediate)
Zhijun He5169ce12014-01-24 16:48:25 -08006957aperture size in capture result metadata while the aperture is changing.<wbr/>
6958While 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>
Zhijun He1b58d382014-01-10 10:22:53 -08006959<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
6960the ON modes,<wbr/> this will be overridden by the camera device
6961auto-exposure algorithm,<wbr/> the overridden values are then provided
6962back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006963 </td>
6964 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006965
6966
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006967 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6968 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006969
6970
6971 <tr class="entry" id="controls_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006972 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006973 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006974 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006975 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006976 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006977
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006978 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006979
6980
6981 </td> <!-- entry_type -->
6982
6983 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006984 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006985 </td>
6986
6987 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006988 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006989 </td>
6990
6991 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006992 <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006993 </td>
6994
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006995 <td class="entry_tags">
6996 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006997 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006998 </ul>
6999 </td>
7000
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007001 </tr>
7002 <tr class="entries_header">
7003 <th class="th_details" colspan="5">Details</th>
7004 </tr>
7005 <tr class="entry_cont">
7006 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007007 <p>This will not be supported on most camera devices.<wbr/> On devices
7008where this is supported,<wbr/> this may only be set to one of the
7009values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
7010<p>Lens filters are typically used to lower the amount of light the
7011sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
7012step is the standard logarithmic representation,<wbr/> which are
7013non-negative,<wbr/> and inversely proportional to the amount of light
7014hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
7015in no reduction of the incoming light,<wbr/> and setting this to 2 would
7016mean that the filter is set to reduce incoming light by two stops
7017(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08007018<p>It may take several frames before the lens filter density changes
7019to the requested value.<wbr/> While the filter density is still changing,<wbr/>
7020<a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007021 </td>
7022 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007023
7024
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007025 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7026 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007027
7028
7029 <tr class="entry" id="controls_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007030 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007031 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007032 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007033 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007034 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007035
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007036 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007037
7038
7039 </td> <!-- entry_type -->
7040
7041 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007042 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007043 </td>
7044
7045 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007046 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007047 </td>
7048
7049 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007050 <p><a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007051 </td>
7052
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007053 <td class="entry_tags">
7054 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007055 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007056 </ul>
7057 </td>
7058
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007059 </tr>
7060 <tr class="entries_header">
7061 <th class="th_details" colspan="5">Details</th>
7062 </tr>
7063 <tr class="entry_cont">
7064 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007065 <p>This setting controls the physical focal length of the camera
7066device's lens.<wbr/> Changing the focal length changes the field of
7067view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7068<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
7069setting won't be applied instantaneously,<wbr/> and it may take several
Zhijun He5169ce12014-01-24 16:48:25 -08007070frames before the lens can change to the requested focal length.<wbr/>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007071While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7072be set to MOVING.<wbr/></p>
7073<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007074 </td>
7075 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007076
7077
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007078 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7079 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007080
7081
7082 <tr class="entry" id="controls_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007083 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007084 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007085 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007086 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007087 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007088
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007089 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007090
7091
7092 </td> <!-- entry_type -->
7093
7094 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007095 <p>Distance to plane of sharpest focus,<wbr/>
7096measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007097 </td>
7098
7099 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007100 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007101 </td>
7102
7103 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007104 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007105 </td>
7106
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007107 <td class="entry_tags">
7108 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007109 <li><a href="#tag_BC">BC</a></li>
7110 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007111 </ul>
7112 </td>
7113
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007114 </tr>
7115 <tr class="entries_header">
7116 <th class="th_details" colspan="5">Details</th>
7117 </tr>
7118 <tr class="entry_cont">
7119 <td class="entry_details" colspan="5">
Zhijun He5169ce12014-01-24 16:48:25 -08007120 <p>0 means infinity focus.<wbr/> Used value will be clamped
7121to [0,<wbr/> <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>].<wbr/></p>
7122<p>Like <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> this setting won't be applied
7123instantaneously,<wbr/> and it may take several frames before the lens
7124can move to the requested focus distance.<wbr/> While the lens is still moving,<wbr/>
7125<a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007126 </td>
7127 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007128
7129
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007130 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7131 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007132
7133
7134 <tr class="entry" id="controls_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007135 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007136 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007137 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007138 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007139 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007140
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007141 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007142
7143 <ul class="entry_type_enum">
7144 <li>
7145 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007146 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007147 </li>
7148 <li>
7149 <span class="entry_type_enum_name">ON</span>
7150 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007151 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007152 </li>
7153 </ul>
7154
7155 </td> <!-- entry_type -->
7156
7157 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007158 <p>Sets whether the camera device uses optical image stabilization (OIS)
7159when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007160 </td>
7161
7162 <td class="entry_units">
7163 </td>
7164
7165 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08007166 <p><a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007167 </td>
7168
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007169 <td class="entry_tags">
7170 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007171 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007172 </ul>
7173 </td>
7174
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007175 </tr>
7176 <tr class="entries_header">
7177 <th class="th_details" colspan="5">Details</th>
7178 </tr>
7179 <tr class="entry_cont">
7180 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08007181 <p>OIS is used to compensate for motion blur due to small movements of
7182the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
7183use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
7184allows for longer exposure times before camera shake becomes
7185apparent.<wbr/></p>
7186<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007187 </td>
7188 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007189
7190
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007191 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7192 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007193
7194
7195
7196 <!-- end of kind -->
7197 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007198 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007199
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007200 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007201 <tr>
7202 <th class="th_name">Property Name</th>
7203 <th class="th_type">Type</th>
7204 <th class="th_description">Description</th>
7205 <th class="th_units">Units</th>
7206 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007207 <th class="th_tags">Tags</th>
7208 </tr>
7209 </thead>
7210
7211 <tbody>
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224 <tr class="entry" id="static_android.lens.info.availableApertures">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007225 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007226 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007227 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007228 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007229 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007230 <span class="entry_type_container">x</span>
7231
7232 <span class="entry_type_array">
7233 n
7234 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007235 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007236
7237
7238 </td> <!-- entry_type -->
7239
7240 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007241 <p>List of supported aperture
Zhijun He1b58d382014-01-10 10:22:53 -08007242values.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007243 </td>
7244
7245 <td class="entry_units">
7246 </td>
7247
7248 <td class="entry_range">
Zhijun He5169ce12014-01-24 16:48:25 -08007249 <p>one entry required,<wbr/> &gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007250 </td>
7251
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007252 <td class="entry_tags">
7253 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007254 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007255 </ul>
7256 </td>
7257
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007258 </tr>
7259 <tr class="entries_header">
7260 <th class="th_details" colspan="5">Details</th>
7261 </tr>
7262 <tr class="entry_cont">
7263 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007264 <p>If the camera device doesn't support variable apertures,<wbr/>
7265listed value will be the fixed aperture.<wbr/></p>
7266<p>If the camera device supports variable apertures,<wbr/> the aperture value
7267in this list will be sorted in ascending order.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007268 </td>
7269 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007270
7271
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007272 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7273 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007274
7275
7276 <tr class="entry" id="static_android.lens.info.availableFilterDensities">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007277 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007278 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007279 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007280 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007281 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007282 <span class="entry_type_container">x</span>
7283
7284 <span class="entry_type_array">
7285 n
7286 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007287 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007288
7289
7290 </td> <!-- entry_type -->
7291
7292 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007293 <p>List of supported neutral density filter values for
7294<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007295 </td>
7296
7297 <td class="entry_units">
7298 </td>
7299
7300 <td class="entry_range">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007301 <p>At least one value is required.<wbr/> Values must be &gt;= 0.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007302 </td>
7303
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007304 <td class="entry_tags">
7305 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007306 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007307 </ul>
7308 </td>
7309
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007310 </tr>
7311 <tr class="entries_header">
7312 <th class="th_details" colspan="5">Details</th>
7313 </tr>
7314 <tr class="entry_cont">
7315 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007316 <p>If changing <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> is not supported,<wbr/>
7317availableFilterDensities must contain only 0.<wbr/> Otherwise,<wbr/> this
7318list contains only the exact filter density values available on
7319this camera device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007320 </td>
7321 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007322
7323
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007324 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7325 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007326
7327
7328 <tr class="entry" id="static_android.lens.info.availableFocalLengths">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007329 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007330 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007331 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007332 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007333 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007334 <span class="entry_type_container">x</span>
7335
7336 <span class="entry_type_array">
7337 n
7338 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007339 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007340 <div class="entry_type_notes">The list of available focal lengths</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007341
7342
7343 </td> <!-- entry_type -->
7344
7345 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007346 <p>The available focal lengths for this device for use with
7347<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007348 </td>
7349
7350 <td class="entry_units">
7351 </td>
7352
7353 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007354 <p>Each value in this list must be &gt; 0.<wbr/> This list must
7355contain at least one value.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007356 </td>
7357
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007358 <td class="entry_tags">
7359 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007360 <li><a href="#tag_BC">BC</a></li>
7361 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007362 </ul>
7363 </td>
7364
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007365 </tr>
7366 <tr class="entries_header">
7367 <th class="th_details" colspan="5">Details</th>
7368 </tr>
7369 <tr class="entry_cont">
7370 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007371 <p>If optical zoom is not supported,<wbr/> this will only report
7372a single value corresponding to the static focal length of the
7373device.<wbr/> Otherwise,<wbr/> this will report every focal length supported
7374by the device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007375 </td>
7376 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007377
7378
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007379 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7380 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007381
7382
7383 <tr class="entry" id="static_android.lens.info.availableOpticalStabilization">
Ruben Brunk218639c2014-01-15 18:09:41 -08007384 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007385 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007386 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007387 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007388 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007389 <span class="entry_type_container">x</span>
7390
7391 <span class="entry_type_array">
7392 n
7393 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007394 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007395 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007396
7397
7398 </td> <!-- entry_type -->
7399
7400 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007401 <p>List containing a subset of the optical image
7402stabilization (OIS) modes specified in
7403<a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007404 </td>
7405
7406 <td class="entry_units">
7407 </td>
7408
7409 <td class="entry_range">
7410 </td>
7411
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007412 <td class="entry_tags">
7413 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007414 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007415 </ul>
7416 </td>
7417
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007418 </tr>
Ruben Brunk218639c2014-01-15 18:09:41 -08007419 <tr class="entries_header">
7420 <th class="th_details" colspan="5">Details</th>
7421 </tr>
7422 <tr class="entry_cont">
7423 <td class="entry_details" colspan="5">
7424 <p>If OIS is not implemented for a given camera device,<wbr/> this should
7425contain only OFF.<wbr/></p>
7426 </td>
7427 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007428
7429
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007430 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7431 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007432
7433
7434 <tr class="entry" id="static_android.lens.info.geometricCorrectionMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007435 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007436 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007437 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007438 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007439 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007440 <span class="entry_type_container">x</span>
7441
7442 <span class="entry_type_array">
7443 2 x 3 x n x m
7444 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007445 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007446 <div class="entry_type_notes">2D array of destination coordinate pairs for uniform grid points in source image,<wbr/> per color channel.<wbr/> Size in the range of 2x3x40x30</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007447
7448
7449 </td> <!-- entry_type -->
7450
7451 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007452 <p>A low-resolution map for correction of
7453geometric distortions and chromatic aberrations,<wbr/> per
7454color channel</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007455 </td>
7456
7457 <td class="entry_units">
7458 </td>
7459
7460 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007461 <p>N,<wbr/> M &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007462 </td>
7463
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007464 <td class="entry_tags">
7465 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007466 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007467 </ul>
7468 </td>
7469
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007470 </tr>
7471 <tr class="entries_header">
7472 <th class="th_details" colspan="5">Details</th>
7473 </tr>
7474 <tr class="entry_cont">
7475 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007476 <p>[DNG wants a function instead].<wbr/> What's easiest
7477for implementers? With an array size (M,<wbr/> N),<wbr/> entry (i,<wbr/>
7478j) provides the destination for pixel (i/<wbr/>(M-1) * width,<wbr/>
7479j/<wbr/>(N-1) * height).<wbr/> Data is row-major,<wbr/> with each array
7480entry being ( (X,<wbr/> Y)_<wbr/>r,<wbr/> (X,<wbr/> Y)_<wbr/>g,<wbr/> (X,<wbr/> Y)_<wbr/>b ) )</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007481 </td>
7482 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007483
7484
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007485 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7486 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007487
7488
7489 <tr class="entry" id="static_android.lens.info.geometricCorrectionMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007490 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007491 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007492 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007493 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007494 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007495 <span class="entry_type_container">x</span>
7496
7497 <span class="entry_type_array">
7498 2
7499 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007500 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007501 <div class="entry_type_notes">width and height of geometric correction map</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007502
7503
7504 </td> <!-- entry_type -->
7505
7506 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007507 <p>Dimensions of geometric correction
7508map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007509 </td>
7510
7511 <td class="entry_units">
7512 </td>
7513
7514 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007515 <p>Both values &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007516 </td>
7517
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007518 <td class="entry_tags">
7519 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007520 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007521 </ul>
7522 </td>
7523
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007524 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007525
7526
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007527 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7528 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007529
7530
7531 <tr class="entry" id="static_android.lens.info.hyperfocalDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007532 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007533 android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007534 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007535 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007536 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007537
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007538 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007539
7540
7541 </td> <!-- entry_type -->
7542
7543 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007544 <p>Hyperfocal distance for this lens; set to
75450 if fixed focus</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007546 </td>
7547
7548 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007549 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007550 </td>
7551
7552 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007553 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007554 </td>
7555
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007556 <td class="entry_tags">
7557 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007558 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007559 </ul>
7560 </td>
7561
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007562 </tr>
7563 <tr class="entries_header">
7564 <th class="th_details" colspan="5">Details</th>
7565 </tr>
7566 <tr class="entry_cont">
7567 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007568 <p>The hyperfocal distance is used for the old
7569API's 'fixed' setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007570 </td>
7571 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007572
7573
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007574 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7575 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007576
7577
7578 <tr class="entry" id="static_android.lens.info.minimumFocusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007579 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007580 android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007581 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007582 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007583 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007584
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007585 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007586
7587
7588 </td> <!-- entry_type -->
7589
7590 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007591 <p>Shortest distance from frontmost surface
7592of the lens that can be focused correctly</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007593 </td>
7594
7595 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007596 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007597 </td>
7598
7599 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007600 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007601 </td>
7602
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007603 <td class="entry_tags">
7604 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007605 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007606 </ul>
7607 </td>
7608
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007609 </tr>
7610 <tr class="entries_header">
7611 <th class="th_details" colspan="5">Details</th>
7612 </tr>
7613 <tr class="entry_cont">
7614 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007615 <p>If the lens is fixed-focus,<wbr/> this should be
76160</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007617 </td>
7618 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007619
7620
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007621 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7622 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007623
7624
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007625 <tr class="entry" id="static_android.lens.info.shadingMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007626 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007627 android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007628 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007629 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007630 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007631 <span class="entry_type_container">x</span>
7632
7633 <span class="entry_type_array">
7634 2
7635 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007636 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007637 <div class="entry_type_notes">width and height of lens shading map provided by the HAL.<wbr/> (N x M)</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007638
7639
7640 </td> <!-- entry_type -->
7641
7642 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007643 <p>Dimensions of lens shading map.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007644 </td>
7645
7646 <td class="entry_units">
7647 </td>
7648
7649 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007650 <p>Both values &gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007651 </td>
7652
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007653 <td class="entry_tags">
7654 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007655 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007656 </ul>
7657 </td>
7658
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007659 </tr>
7660 <tr class="entries_header">
7661 <th class="th_details" colspan="5">Details</th>
7662 </tr>
7663 <tr class="entry_cont">
7664 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007665 <p>The map should be on the order of 30-40 rows and columns,<wbr/> and
7666must be smaller than 64x64.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007667 </td>
7668 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007669
7670
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007671 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7672 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007673
7674
7675
7676
7677
7678 <tr class="entry" id="static_android.lens.facing">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007679 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007680 android.<wbr/>lens.<wbr/>facing
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007681 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007682 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007683 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007684
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007685 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007686
7687 <ul class="entry_type_enum">
7688 <li>
7689 <span class="entry_type_enum_name">FRONT</span>
7690 </li>
7691 <li>
7692 <span class="entry_type_enum_name">BACK</span>
7693 </li>
7694 </ul>
7695
7696 </td> <!-- entry_type -->
7697
7698 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007699 <p>Direction the camera faces relative to
7700device screen</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007701 </td>
7702
7703 <td class="entry_units">
7704 </td>
7705
7706 <td class="entry_range">
7707 </td>
7708
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007709 <td class="entry_tags">
7710 </td>
7711
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007712 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007713
7714
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007715 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7716 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007717
7718
7719 <tr class="entry" id="static_android.lens.opticalAxisAngle">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007720 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007721 android.<wbr/>lens.<wbr/>optical<wbr/>Axis<wbr/>Angle
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007722 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007723 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007724 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007725 <span class="entry_type_container">x</span>
7726
7727 <span class="entry_type_array">
7728 2
7729 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007730 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007731 <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>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007732
7733
7734 </td> <!-- entry_type -->
7735
7736 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007737 <p>Relative angle of camera optical axis to the
7738perpendicular axis from the display</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007739 </td>
7740
7741 <td class="entry_units">
7742 </td>
7743
7744 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007745 <p>[0-90) for first angle,<wbr/> [0-360) for second</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007746 </td>
7747
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007748 <td class="entry_tags">
7749 <ul class="entry_tags">
7750 <li><a href="#tag_ADV">ADV</a></li>
7751 </ul>
7752 </td>
7753
7754 </tr>
7755 <tr class="entries_header">
7756 <th class="th_details" colspan="5">Details</th>
7757 </tr>
7758 <tr class="entry_cont">
7759 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007760 <p>Examples:</p>
7761<p>(0,<wbr/>0) means that the camera optical axis
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007762is perpendicular to the display surface;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007763<p>(45,<wbr/>0) means that the camera points 45 degrees up when
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007764device is held upright;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007765<p>(45,<wbr/>90) means the camera points 45 degrees to the right when
7766the device is held upright.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007767<p>Use FACING field to determine perpendicular outgoing
Igor Murashkin0b080452013-12-27 15:30:25 -08007768direction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007769 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007770 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007771
7772
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007773 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7774 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007775
7776
7777 <tr class="entry" id="static_android.lens.position">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007778 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007779 android.<wbr/>lens.<wbr/>position
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007780 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007781 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007782 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007783 <span class="entry_type_container">x</span>
7784
7785 <span class="entry_type_array">
7786 3, location in mm, in the sensor coordinate
7787 system
7788 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007789 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007790
7791
7792 </td> <!-- entry_type -->
7793
7794 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007795 <p>Coordinates of camera optical axis on
7796device</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007797 </td>
7798
7799 <td class="entry_units">
7800 </td>
7801
7802 <td class="entry_range">
7803 </td>
7804
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007805 <td class="entry_tags">
7806 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007807 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007808 </ul>
7809 </td>
7810
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007811 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007812
7813
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007814 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7815 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007816
7817
7818
7819 <!-- end of kind -->
7820 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007821 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007822
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007823 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007824 <tr>
7825 <th class="th_name">Property Name</th>
7826 <th class="th_type">Type</th>
7827 <th class="th_description">Description</th>
7828 <th class="th_units">Units</th>
7829 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007830 <th class="th_tags">Tags</th>
7831 </tr>
7832 </thead>
7833
7834 <tbody>
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845 <tr class="entry" id="dynamic_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007846 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007847 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007848 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007849 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007850 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007851
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007852 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007853
7854
7855 </td> <!-- entry_type -->
7856
7857 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08007858 <p>The ratio of lens focal length to the effective
7859aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007860 </td>
7861
7862 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007863 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007864 </td>
7865
7866 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007867 <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007868 </td>
7869
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007870 <td class="entry_tags">
7871 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007872 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007873 </ul>
7874 </td>
7875
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007876 </tr>
7877 <tr class="entries_header">
7878 <th class="th_details" colspan="5">Details</th>
7879 </tr>
7880 <tr class="entry_cont">
7881 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007882 <p>This will only be supported on the camera devices that
7883have variable aperture lens.<wbr/> The aperture value can only be
7884one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
7885<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
7886this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
7887<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
7888to achieve manual exposure control.<wbr/></p>
7889<p>The requested aperture value may take several frames to reach the
7890requested value; the camera device will report the current (intermediate)
Zhijun He5169ce12014-01-24 16:48:25 -08007891aperture size in capture result metadata while the aperture is changing.<wbr/>
7892While 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>
Zhijun He1b58d382014-01-10 10:22:53 -08007893<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
7894the ON modes,<wbr/> this will be overridden by the camera device
7895auto-exposure algorithm,<wbr/> the overridden values are then provided
7896back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007897 </td>
7898 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007899
7900
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007901 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7902 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007903
7904
7905 <tr class="entry" id="dynamic_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007906 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007907 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007908 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007909 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007910 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007911
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007912 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007913
7914
7915 </td> <!-- entry_type -->
7916
7917 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007918 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007919 </td>
7920
7921 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007922 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007923 </td>
7924
7925 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007926 <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007927 </td>
7928
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007929 <td class="entry_tags">
7930 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007931 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007932 </ul>
7933 </td>
7934
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007935 </tr>
7936 <tr class="entries_header">
7937 <th class="th_details" colspan="5">Details</th>
7938 </tr>
7939 <tr class="entry_cont">
7940 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007941 <p>This will not be supported on most camera devices.<wbr/> On devices
7942where this is supported,<wbr/> this may only be set to one of the
7943values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
7944<p>Lens filters are typically used to lower the amount of light the
7945sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
7946step is the standard logarithmic representation,<wbr/> which are
7947non-negative,<wbr/> and inversely proportional to the amount of light
7948hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
7949in no reduction of the incoming light,<wbr/> and setting this to 2 would
7950mean that the filter is set to reduce incoming light by two stops
7951(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08007952<p>It may take several frames before the lens filter density changes
7953to the requested value.<wbr/> While the filter density is still changing,<wbr/>
7954<a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007955 </td>
7956 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007957
7958
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007959 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7960 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007961
7962
7963 <tr class="entry" id="dynamic_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007964 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007965 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007966 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007967 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007968 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007969
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007970 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007971
7972
7973 </td> <!-- entry_type -->
7974
7975 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007976 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007977 </td>
7978
7979 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007980 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007981 </td>
7982
7983 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007984 <p><a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007985 </td>
7986
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007987 <td class="entry_tags">
7988 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007989 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007990 </ul>
7991 </td>
7992
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007993 </tr>
7994 <tr class="entries_header">
7995 <th class="th_details" colspan="5">Details</th>
7996 </tr>
7997 <tr class="entry_cont">
7998 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007999 <p>This setting controls the physical focal length of the camera
8000device's lens.<wbr/> Changing the focal length changes the field of
8001view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
8002<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
8003setting won't be applied instantaneously,<wbr/> and it may take several
Zhijun He5169ce12014-01-24 16:48:25 -08008004frames before the lens can change to the requested focal length.<wbr/>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08008005While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
8006be set to MOVING.<wbr/></p>
8007<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008008 </td>
8009 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008010
8011
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008012 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8013 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008014
8015
8016 <tr class="entry" id="dynamic_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008017 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008018 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008019 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008020 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008021 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008022
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008023 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008024
8025
8026 </td> <!-- entry_type -->
8027
8028 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008029 <p>Distance to plane of sharpest focus,<wbr/>
8030measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008031 </td>
8032
8033 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008034 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008035 </td>
8036
8037 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08008038 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008039 </td>
8040
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008041 <td class="entry_tags">
8042 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008043 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008044 </ul>
8045 </td>
8046
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008047 </tr>
8048 <tr class="entries_header">
8049 <th class="th_details" colspan="5">Details</th>
8050 </tr>
8051 <tr class="entry_cont">
8052 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008053 <p>Should be zero for fixed-focus cameras</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008054 </td>
8055 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008056
8057
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008058 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8059 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008060
8061
8062 <tr class="entry" id="dynamic_android.lens.focusRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008063 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008064 android.<wbr/>lens.<wbr/>focus<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008065 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008066 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008067 <span class="entry_type_name">float</span>
Zhijun He50451ad2013-09-26 10:27:47 -07008068 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008069
Zhijun He50451ad2013-09-26 10:27:47 -07008070 <span class="entry_type_array">
8071 2
8072 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008073 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08008074 <div class="entry_type_notes">Range of scene distances that are in focus</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008075
8076
8077 </td> <!-- entry_type -->
8078
8079 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008080 <p>The range of scene distances that are in
8081sharp focus (depth of field)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008082 </td>
8083
8084 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008085 pair of focus distances in diopters: (near,<wbr/>
8086 far)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008087 </td>
8088
8089 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08008090 <p>&gt;=0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008091 </td>
8092
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008093 <td class="entry_tags">
8094 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008095 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008096 </ul>
8097 </td>
8098
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008099 </tr>
8100 <tr class="entries_header">
8101 <th class="th_details" colspan="5">Details</th>
8102 </tr>
8103 <tr class="entry_cont">
8104 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008105 <p>If variable focus not supported,<wbr/> can still report
8106fixed depth of field range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008107 </td>
8108 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008109
8110
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008111 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8112 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008113
8114
8115 <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008116 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008117 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008118 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008119 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008120 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008121
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008122 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008123
8124 <ul class="entry_type_enum">
8125 <li>
8126 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008127 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008128 </li>
8129 <li>
8130 <span class="entry_type_enum_name">ON</span>
8131 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008132 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008133 </li>
8134 </ul>
8135
8136 </td> <!-- entry_type -->
8137
8138 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08008139 <p>Sets whether the camera device uses optical image stabilization (OIS)
8140when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008141 </td>
8142
8143 <td class="entry_units">
8144 </td>
8145
8146 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08008147 <p><a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008148 </td>
8149
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008150 <td class="entry_tags">
8151 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008152 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008153 </ul>
8154 </td>
8155
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008156 </tr>
8157 <tr class="entries_header">
8158 <th class="th_details" colspan="5">Details</th>
8159 </tr>
8160 <tr class="entry_cont">
8161 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08008162 <p>OIS is used to compensate for motion blur due to small movements of
8163the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
8164use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
8165allows for longer exposure times before camera shake becomes
8166apparent.<wbr/></p>
8167<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008168 </td>
8169 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008170
8171
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008172 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8173 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008174
8175
8176 <tr class="entry" id="dynamic_android.lens.state">
Zhijun He5169ce12014-01-24 16:48:25 -08008177 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008178 android.<wbr/>lens.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008179 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008180 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008181 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008182
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008183 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008184
8185 <ul class="entry_type_enum">
8186 <li>
8187 <span class="entry_type_enum_name">STATIONARY</span>
Zhijun He5169ce12014-01-24 16:48:25 -08008188 <span class="entry_type_enum_notes"><p>The lens parameters (<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> android.<wbr/>lens.<wbr/>focus<wbr/>Distance
8189android.<wbr/>lens.<wbr/>filter<wbr/>Density and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>) are not changing.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008190 </li>
Igor Murashkin0e323a12013-09-06 11:50:48 -07008191 <li>
8192 <span class="entry_type_enum_name">MOVING</span>
Zhijun He5169ce12014-01-24 16:48:25 -08008193 <span class="entry_type_enum_notes"><p>Any of the lens parameters (<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> android.<wbr/>lens.<wbr/>focus<wbr/>Distance
8194android.<wbr/>lens.<wbr/>filter<wbr/>Density or <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>) is changing.<wbr/></p></span>
Igor Murashkin0e323a12013-09-06 11:50:48 -07008195 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008196 </ul>
8197
8198 </td> <!-- entry_type -->
8199
8200 <td class="entry_description">
Zhijun He5169ce12014-01-24 16:48:25 -08008201 <p>Current lens status.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008202 </td>
8203
8204 <td class="entry_units">
8205 </td>
8206
8207 <td class="entry_range">
8208 </td>
8209
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008210 <td class="entry_tags">
8211 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008212 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008213 </ul>
8214 </td>
8215
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008216 </tr>
Zhijun He5169ce12014-01-24 16:48:25 -08008217 <tr class="entries_header">
8218 <th class="th_details" colspan="5">Details</th>
8219 </tr>
8220 <tr class="entry_cont">
8221 <td class="entry_details" colspan="5">
8222 <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/>
8223<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/>
8224they may take several frames to reach the requested values.<wbr/> This state indicates
8225the current status of the lens parameters.<wbr/></p>
8226<p>When the state is STATIONARY,<wbr/> the lens parameters are not changing.<wbr/> This could be
8227either because the parameters are all fixed,<wbr/> or because the lens has had enough
8228time to reach the most recently-requested values.<wbr/>
8229If all these lens parameters are not changable for a camera device,<wbr/> as listed below:</p>
8230<ul>
8231<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
8232<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> parameter will always be 0.<wbr/></li>
8233<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/>
8234which means the optical zoom is not supported.<wbr/></li>
8235<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>
8236<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>
8237</ul>
8238<p>Then this state will always be STATIONARY.<wbr/></p>
8239<p>When the state is MOVING,<wbr/> it indicates that at least one of the lens parameters
8240is changing.<wbr/></p>
8241 </td>
8242 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008243
8244
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008245 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8246 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008247
8248
8249
8250 <!-- end of kind -->
8251 </tbody>
8252
8253 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008254 <tr><td colspan="6" id="section_noiseReduction" class="section">noiseReduction</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008255
8256
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008257 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008258
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008259 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008260 <tr>
8261 <th class="th_name">Property Name</th>
8262 <th class="th_type">Type</th>
8263 <th class="th_description">Description</th>
8264 <th class="th_units">Units</th>
8265 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008266 <th class="th_tags">Tags</th>
8267 </tr>
8268 </thead>
8269
8270 <tbody>
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281 <tr class="entry" id="controls_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008282 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008283 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008284 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008285 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008286 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008287
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008288 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008289
8290 <ul class="entry_type_enum">
8291 <li>
8292 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008293 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008294 </li>
8295 <li>
8296 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008297 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8298output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008299 </li>
8300 <li>
8301 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008302 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8303quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008304 </li>
8305 </ul>
8306
8307 </td> <!-- entry_type -->
8308
8309 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008310 <p>Mode of operation for the noise reduction
8311algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008312 </td>
8313
8314 <td class="entry_units">
8315 </td>
8316
8317 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008318 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008319 </td>
8320
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008321 <td class="entry_tags">
8322 <ul class="entry_tags">
8323 <li><a href="#tag_V1">V1</a></li>
8324 </ul>
8325 </td>
8326
8327 </tr>
8328 <tr class="entries_header">
8329 <th class="th_details" colspan="5">Details</th>
8330 </tr>
8331 <tr class="entry_cont">
8332 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008333 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8334will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008335<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8336will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8337will use the highest-quality noise filtering algorithms,<wbr/>
8338even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008339slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008340 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008341 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008342
8343
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008344 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8345 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008346
8347
8348 <tr class="entry" id="controls_android.noiseReduction.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008349 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008350 android.<wbr/>noise<wbr/>Reduction.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008351 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008352 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008353 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008354
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008355 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008356
8357
8358 </td> <!-- entry_type -->
8359
8360 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008361 <p>Control the amount of noise reduction
8362applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008363 </td>
8364
8365 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008366 1-10; 10 is max noise reduction
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008367 </td>
8368
8369 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008370 <p>1 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008371 </td>
8372
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008373 <td class="entry_tags">
8374 </td>
8375
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008376 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008377
8378
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008379 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8380 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008381
8382
8383
8384 <!-- end of kind -->
8385 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008386 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008387
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008388 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008389 <tr>
8390 <th class="th_name">Property Name</th>
8391 <th class="th_type">Type</th>
8392 <th class="th_description">Description</th>
8393 <th class="th_units">Units</th>
8394 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008395 <th class="th_tags">Tags</th>
8396 </tr>
8397 </thead>
8398
8399 <tbody>
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410 <tr class="entry" id="dynamic_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008411 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008412 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008413 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008414 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008415 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008416
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008417 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008418
8419 <ul class="entry_type_enum">
8420 <li>
8421 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008422 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008423 </li>
8424 <li>
8425 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008426 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8427output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008428 </li>
8429 <li>
8430 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008431 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8432quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008433 </li>
8434 </ul>
8435
8436 </td> <!-- entry_type -->
8437
8438 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008439 <p>Mode of operation for the noise reduction
8440algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008441 </td>
8442
8443 <td class="entry_units">
8444 </td>
8445
8446 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008447 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008448 </td>
8449
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008450 <td class="entry_tags">
8451 <ul class="entry_tags">
8452 <li><a href="#tag_V1">V1</a></li>
8453 </ul>
8454 </td>
8455
8456 </tr>
8457 <tr class="entries_header">
8458 <th class="th_details" colspan="5">Details</th>
8459 </tr>
8460 <tr class="entry_cont">
8461 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008462 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8463will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008464<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8465will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8466will use the highest-quality noise filtering algorithms,<wbr/>
8467even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008468slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008469 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008470 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008471
8472
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008473 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8474 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008475
8476
8477
8478 <!-- end of kind -->
8479 </tbody>
8480
8481 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008482 <tr><td colspan="6" id="section_quirks" class="section">quirks</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008483
8484
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008485 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008486
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008487 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008488 <tr>
8489 <th class="th_name">Property Name</th>
8490 <th class="th_type">Type</th>
8491 <th class="th_description">Description</th>
8492 <th class="th_units">Units</th>
8493 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008494 <th class="th_tags">Tags</th>
8495 </tr>
8496 </thead>
8497
8498 <tbody>
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509 <tr class="entry" id="static_android.quirks.meteringCropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008510 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008511 android.<wbr/>quirks.<wbr/>metering<wbr/>Crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008512 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008513 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008514 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008515
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008516 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008517
8518
8519 </td> <!-- entry_type -->
8520
8521 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008522 <p>If set to 1,<wbr/> the camera service does not
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008523scale 'normalized' coordinates with respect to the crop
Igor Murashkin0b080452013-12-27 15:30:25 -08008524region.<wbr/> This applies to metering input (a{e,<wbr/>f,<wbr/>wb}Region
8525and output (face rectangles).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008526 </td>
8527
8528 <td class="entry_units">
8529 </td>
8530
8531 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008532 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008533 </td>
8534
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008535 <td class="entry_tags">
8536 </td>
8537
8538 </tr>
8539 <tr class="entries_header">
8540 <th class="th_details" colspan="5">Details</th>
8541 </tr>
8542 <tr class="entry_cont">
8543 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008544 <p>Normalized coordinates refer to those in the
8545(-1000,<wbr/>1000) range mentioned in the
8546android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008547<p>HAL implementations should instead always use and emit
Igor Murashkin0b080452013-12-27 15:30:25 -08008548sensor array-relative coordinates for all region data.<wbr/> Does
8549not need to be listed in static metadata.<wbr/> Support will be
8550removed in future versions of camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008551 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008552 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008553
8554
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008555 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8556 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008557
8558
8559 <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008560 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008561 android.<wbr/>quirks.<wbr/>trigger<wbr/>Af<wbr/>With<wbr/>Auto
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008562 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008563 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008564 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008565
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008566 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008567
8568
8569 </td> <!-- entry_type -->
8570
8571 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008572 <p>If set to 1,<wbr/> then the camera service always
8573switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF
8574trigger.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008575 </td>
8576
8577 <td class="entry_units">
8578 </td>
8579
8580 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008581 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008582 </td>
8583
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008584 <td class="entry_tags">
8585 </td>
8586
8587 </tr>
8588 <tr class="entries_header">
8589 <th class="th_details" colspan="5">Details</th>
8590 </tr>
8591 <tr class="entry_cont">
8592 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008593 <p>HAL implementations should implement AF trigger
8594modes for AUTO,<wbr/> MACRO,<wbr/> CONTINUOUS_<wbr/>FOCUS,<wbr/> and
8595CONTINUOUS_<wbr/>PICTURE modes instead of using this flag.<wbr/> Does
8596not need to be listed in static metadata.<wbr/> Support will be
8597removed in future versions of camera service</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008598 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008599 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008600
8601
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008602 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8603 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008604
8605
8606 <tr class="entry" id="static_android.quirks.useZslFormat">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008607 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008608 android.<wbr/>quirks.<wbr/>use<wbr/>Zsl<wbr/>Format
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008609 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008610 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008611 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008612
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008613 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008614
8615
8616 </td> <!-- entry_type -->
8617
8618 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008619 <p>If set to 1,<wbr/> the camera service uses
8620CAMERA2_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>ZSL instead of
8621HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED for the zero
8622shutter lag stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008623 </td>
8624
8625 <td class="entry_units">
8626 </td>
8627
8628 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008629 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008630 </td>
8631
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008632 <td class="entry_tags">
8633 </td>
8634
8635 </tr>
8636 <tr class="entries_header">
8637 <th class="th_details" colspan="5">Details</th>
8638 </tr>
8639 <tr class="entry_cont">
8640 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008641 <p>HAL implementations should use gralloc usage flags
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008642to determine that a stream will be used for
Igor Murashkin0b080452013-12-27 15:30:25 -08008643zero-shutter-lag,<wbr/> instead of relying on an explicit
8644format setting.<wbr/> Does not need to be listed in static
8645metadata.<wbr/> Support will be removed in future versions of
8646camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008647 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008648 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008649
8650
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008651 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8652 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008653
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008654
8655 <tr class="entry" id="static_android.quirks.usePartialResult">
Igor Murashkin7761a222014-01-27 16:06:38 -08008656 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008657 android.<wbr/>quirks.<wbr/>use<wbr/>Partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008658 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008659 <td class="entry_type">
8660 <span class="entry_type_name">byte</span>
8661
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008662 <span class="entry_type_visibility"> [hidden]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008663
8664
8665 </td> <!-- entry_type -->
8666
8667 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008668 <p>If set to 1,<wbr/> the HAL will always split result
8669metadata for a single capture into multiple buffers,<wbr/>
8670returned using multiple process_<wbr/>capture_<wbr/>result calls.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008671 </td>
8672
8673 <td class="entry_units">
8674 </td>
8675
8676 <td class="entry_range">
Igor Murashkin7761a222014-01-27 16:06:38 -08008677 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008678 </td>
8679
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008680 <td class="entry_tags">
8681 </td>
8682
8683 </tr>
8684 <tr class="entries_header">
8685 <th class="th_details" colspan="5">Details</th>
8686 </tr>
8687 <tr class="entry_cont">
8688 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008689 <p>Does not need to be listed in static
8690metadata.<wbr/> Support for partial results will be reworked in
8691future versions of camera service.<wbr/> This quirk will stop
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008692working at that point; DO NOT USE without careful
Igor Murashkin0b080452013-12-27 15:30:25 -08008693consideration of future support.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008694 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008695 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008696
Igor Murashkin7761a222014-01-27 16:06:38 -08008697 <tr class="entries_header">
8698 <th class="th_details" colspan="5">HAL Implementation Details</th>
8699 </tr>
8700 <tr class="entry_cont">
8701 <td class="entry_details" colspan="5">
8702 <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
8703for information on how to implement partial results.<wbr/></p>
8704 </td>
8705 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008706
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008707 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8708 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008709
8710
8711
8712 <!-- end of kind -->
8713 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008714 <tr><td colspan="6" class="kind">dynamic</td></tr>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008715
8716 <thead class="entries_header">
8717 <tr>
8718 <th class="th_name">Property Name</th>
8719 <th class="th_type">Type</th>
8720 <th class="th_description">Description</th>
8721 <th class="th_units">Units</th>
8722 <th class="th_range">Range</th>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008723 <th class="th_tags">Tags</th>
8724 </tr>
8725 </thead>
8726
8727 <tbody>
8728
8729
8730
8731
8732
8733
8734
8735
8736
8737
8738 <tr class="entry" id="dynamic_android.quirks.partialResult">
Igor Murashkin7761a222014-01-27 16:06:38 -08008739 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008740 android.<wbr/>quirks.<wbr/>partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008741 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008742 <td class="entry_type">
8743 <span class="entry_type_name entry_type_name_enum">byte</span>
8744
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008745 <span class="entry_type_visibility"> [hidden as boolean]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008746
8747 <ul class="entry_type_enum">
8748 <li>
8749 <span class="entry_type_enum_name">FINAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008750 <span class="entry_type_enum_notes"><p>The last or only metadata result buffer
8751for this capture.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008752 </li>
8753 <li>
8754 <span class="entry_type_enum_name">PARTIAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008755 <span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this
8756capture.<wbr/> More result buffers for this capture will be sent
8757by the HAL,<wbr/> the last of which will be marked
8758FINAL.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008759 </li>
8760 </ul>
8761
8762 </td> <!-- entry_type -->
8763
8764 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008765 <p>Whether a result given to the framework is the
8766final one for the capture,<wbr/> or only a partial that contains a
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008767subset of the full set of dynamic metadata
Igor Murashkin0b080452013-12-27 15:30:25 -08008768values.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008769 </td>
8770
8771 <td class="entry_units">
8772 </td>
8773
8774 <td class="entry_range">
Igor Murashkin7761a222014-01-27 16:06:38 -08008775 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> Optional.<wbr/> Default value is FINAL.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008776 </td>
8777
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008778 <td class="entry_tags">
8779 </td>
8780
8781 </tr>
8782 <tr class="entries_header">
8783 <th class="th_details" colspan="5">Details</th>
8784 </tr>
8785 <tr class="entry_cont">
8786 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008787 <p>The entries in the result metadata buffers for a
8788single capture may not overlap,<wbr/> except for this entry.<wbr/> The
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008789FINAL buffers must retain FIFO ordering relative to the
Igor Murashkin0b080452013-12-27 15:30:25 -08008790requests that generate them,<wbr/> so the FINAL buffer for frame 3 must
8791always be sent to the framework after the FINAL buffer for frame 2,<wbr/> and
8792before the FINAL buffer for frame 4.<wbr/> PARTIAL buffers may be returned
8793in any order relative to other frames,<wbr/> but all PARTIAL buffers for a given
8794capture must arrive before the FINAL buffer for that capture.<wbr/> This entry may
8795only be used by the HAL if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008796 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008797 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008798
Igor Murashkin7761a222014-01-27 16:06:38 -08008799 <tr class="entries_header">
8800 <th class="th_details" colspan="5">HAL Implementation Details</th>
8801 </tr>
8802 <tr class="entry_cont">
8803 <td class="entry_details" colspan="5">
8804 <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
8805for information on how to implement partial results.<wbr/></p>
8806 </td>
8807 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008808
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008809 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8810 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008811
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008812
8813
8814 <!-- end of kind -->
8815 </tbody>
8816
8817 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008818 <tr><td colspan="6" id="section_request" class="section">request</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008819
8820
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008821 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008822
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008823 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008824 <tr>
8825 <th class="th_name">Property Name</th>
8826 <th class="th_type">Type</th>
8827 <th class="th_description">Description</th>
8828 <th class="th_units">Units</th>
8829 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008830 <th class="th_tags">Tags</th>
8831 </tr>
8832 </thead>
8833
8834 <tbody>
8835
8836
8837
8838
8839
8840
8841
8842
8843
8844
8845 <tr class="entry" id="controls_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008846 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008847 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008848 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008849 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008850 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008851
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008852 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008853
8854
8855 </td> <!-- entry_type -->
8856
8857 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008858 <p>A frame counter set by the framework.<wbr/> Must
8859be maintained unchanged in output frame.<wbr/> This value monotonically
8860increases with every new result (that is,<wbr/> each new result has a unique
8861frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008862 </td>
8863
8864 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008865 incrementing integer
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008866 </td>
8867
8868 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008869 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> Any int.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008870 </td>
8871
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008872 <td class="entry_tags">
8873 </td>
8874
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008875 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008876
8877
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008878 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8879 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008880
8881
8882 <tr class="entry" id="controls_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008883 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008884 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008885 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008886 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008887 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008888
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008889 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008890
8891
8892 </td> <!-- entry_type -->
8893
8894 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008895 <p>An application-specified ID for the current
8896request.<wbr/> Must be maintained unchanged in output
8897frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008898 </td>
8899
8900 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008901 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008902 </td>
8903
8904 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008905 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008906 </td>
8907
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008908 <td class="entry_tags">
8909 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008910 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008911 </ul>
8912 </td>
8913
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008914 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008915
8916
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008917 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8918 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008919
8920
8921 <tr class="entry" id="controls_android.request.inputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008922 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008923 android.<wbr/>request.<wbr/>input<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008924 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008925 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07008926 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008927 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008928
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008929 <span class="entry_type_array">
8930 n
8931 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008932 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008933
8934
8935 </td> <!-- entry_type -->
8936
8937 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008938 <p>List which camera reprocess stream is used
8939for the source of reprocessing data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008940 </td>
8941
8942 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008943 List of camera reprocess stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008944 </td>
8945
8946 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008947 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
8948<p>Typically,<wbr/> only one entry allowed,<wbr/> must be a valid reprocess stream ID.<wbr/></p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008949<p>If android.<wbr/>jpeg.<wbr/>needs<wbr/>Thumbnail is set,<wbr/> then multiple
8950reprocess streams may be included in a single request; they
8951must be different scaled versions of the same image.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008952 </td>
8953
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008954 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008955 <ul class="entry_tags">
8956 <li><a href="#tag_HAL2">HAL2</a></li>
8957 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008958 </td>
8959
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008960 </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">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008966 <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> ==
Igor Murashkin0b080452013-12-27 15:30:25 -08008967REPROCESS.<wbr/> Ignored otherwise</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008968 </td>
8969 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008970
8971
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008972 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8973 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008974
8975
8976 <tr class="entry" id="controls_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008977 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008978 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008979 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008980 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008981 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008982
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008983 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008984
8985 <ul class="entry_type_enum">
8986 <li>
8987 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008988 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
8989for application-bound buffer data.<wbr/> If no
8990application-bound streams exist,<wbr/> no frame should be
8991placed in the output frame queue.<wbr/> If such streams
8992exist,<wbr/> a frame should be placed on the output queue
8993with null metadata but with the necessary output buffer
8994information.<wbr/> Timestamp information should still be
8995included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008996 </li>
8997 <li>
8998 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008999 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
9000only be produced if they are separately
9001enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009002 </li>
9003 </ul>
9004
9005 </td> <!-- entry_type -->
9006
9007 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009008 <p>How much metadata to produce on
9009output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009010 </td>
9011
9012 <td class="entry_units">
9013 </td>
9014
9015 <td class="entry_range">
9016 </td>
9017
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009018 <td class="entry_tags">
9019 </td>
9020
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009021 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009022
9023
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009024 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9025 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009026
9027
9028 <tr class="entry" id="controls_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009029 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009030 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009031 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009032 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009033 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009034 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009035
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009036 <span class="entry_type_array">
9037 n
9038 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009039 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009040
9041
9042 </td> <!-- entry_type -->
9043
9044 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009045 <p>Lists which camera output streams image data
9046from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009047 </td>
9048
9049 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009050 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009051 </td>
9052
9053 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08009054 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> List must only include streams that have been
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009055created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009056 </td>
9057
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009058 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009059 <ul class="entry_tags">
9060 <li><a href="#tag_HAL2">HAL2</a></li>
9061 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009062 </td>
9063
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009064 </tr>
9065 <tr class="entries_header">
9066 <th class="th_details" colspan="5">Details</th>
9067 </tr>
9068 <tr class="entry_cont">
9069 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009070 <p>If no output streams are listed,<wbr/> then the image
9071data should simply be discarded.<wbr/> The image data must
9072still be captured for metadata and statistics production,<wbr/>
9073and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009074 </td>
9075 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009076
9077
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009078 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9079 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009080
9081
9082 <tr class="entry" id="controls_android.request.type">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009083 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009084 android.<wbr/>request.<wbr/>type
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009085 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009086 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009087 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009088
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009089 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009090
9091 <ul class="entry_type_enum">
9092 <li>
9093 <span class="entry_type_enum_name">CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009094 <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
9095and process it according to the
9096settings</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009097 </li>
9098 <li>
9099 <span class="entry_type_enum_name">REPROCESS</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009100 <span class="entry_type_enum_notes"><p>Process previously captured data; the
9101android.<wbr/>request.<wbr/>input<wbr/>Stream parameter determines the
9102source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
9103needed for reprocessing with [RP]</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009104 </li>
9105 </ul>
9106
9107 </td> <!-- entry_type -->
9108
9109 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009110 <p>The type of the request; either CAPTURE or
9111REPROCESS.<wbr/> For HAL3,<wbr/> this tag is redundant.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009112 </td>
9113
9114 <td class="entry_units">
9115 </td>
9116
9117 <td class="entry_range">
9118 </td>
9119
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009120 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009121 <ul class="entry_tags">
9122 <li><a href="#tag_HAL2">HAL2</a></li>
9123 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009124 </td>
9125
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009126 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009127
9128
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009129 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9130 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009131
9132
9133
9134 <!-- end of kind -->
9135 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009136 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009137
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009138 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009139 <tr>
9140 <th class="th_name">Property Name</th>
9141 <th class="th_type">Type</th>
9142 <th class="th_description">Description</th>
9143 <th class="th_units">Units</th>
9144 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009145 <th class="th_tags">Tags</th>
9146 </tr>
9147 </thead>
9148
9149 <tbody>
9150
9151
9152
9153
9154
9155
9156
9157
9158
9159
9160 <tr class="entry" id="static_android.request.maxNumOutputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009161 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009162 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009163 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009164 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009165 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009166 <span class="entry_type_container">x</span>
9167
9168 <span class="entry_type_array">
9169 3
9170 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009171 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009172
9173
9174 </td> <!-- entry_type -->
9175
9176 <td class="entry_description">
Zhijun He12744b22014-01-22 15:58:57 -08009177 <p>The maximum numbers of different types of output streams
9178that can be configured and used simultaneously by a camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009179 </td>
9180
9181 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009182 </td>
9183
9184 <td class="entry_range">
Zhijun He12744b22014-01-22 15:58:57 -08009185 <p>&gt;= 1 for JPEG-compressed format streams.<wbr/></p>
9186<p>&gt;= 0 for Raw format streams.<wbr/></p>
9187<p>&gt;= 3 for processed,<wbr/> uncompressed format streams.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009188 </td>
9189
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009190 <td class="entry_tags">
9191 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009192 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009193 </ul>
9194 </td>
9195
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009196 </tr>
9197 <tr class="entries_header">
9198 <th class="th_details" colspan="5">Details</th>
9199 </tr>
9200 <tr class="entry_cont">
9201 <td class="entry_details" colspan="5">
Zhijun He12744b22014-01-22 15:58:57 -08009202 <p>This is a 3 element tuple that contains the max number of output simultaneous
9203streams for raw sensor,<wbr/> processed (and uncompressed),<wbr/> and JPEG formats respectively.<wbr/>
9204For example,<wbr/> if max raw sensor format output stream number is 1,<wbr/> max YUV streams
9205number 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>
9206<p>This lists the upper bound of the number of output streams supported by
9207the camera device.<wbr/> Using more streams simultaneously may require more hardware and
9208CPU resources that will consume more power.<wbr/> The image format for a output stream can
9209be any supported format provided by <a href="#static_android.scaler.availableFormats">android.<wbr/>scaler.<wbr/>available<wbr/>Formats</a>.<wbr/> The formats
9210defined in <a href="#static_android.scaler.availableFormats">android.<wbr/>scaler.<wbr/>available<wbr/>Formats</a> can be catergorized into the 3 stream types
9211as below:</p>
9212<ul>
9213<li>JPEG-compressed format: BLOB.<wbr/></li>
9214<li>Raw formats: RAW_<wbr/>SENSOR and RAW_<wbr/>OPAQUE.<wbr/></li>
9215<li>processed,<wbr/> uncompressed formats: YCb<wbr/>Cr_<wbr/>420_<wbr/>888,<wbr/> YCr<wbr/>Cb_<wbr/>420_<wbr/>SP,<wbr/> YV12.<wbr/></li>
9216</ul>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009217 </td>
9218 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009219
9220
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009221 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9222 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009223
9224
9225 <tr class="entry" id="static_android.request.maxNumReprocessStreams">
Zhijun He12744b22014-01-22 15:58:57 -08009226 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009227 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Reprocess<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009228 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009229 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009230 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009231 <span class="entry_type_container">x</span>
9232
9233 <span class="entry_type_array">
9234 1
9235 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009236 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009237
9238
9239 </td> <!-- entry_type -->
9240
9241 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009242 <p>How many reprocessing streams of any type
Zhijun He12744b22014-01-22 15:58:57 -08009243can be allocated at the same time.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009244 </td>
9245
9246 <td class="entry_units">
9247 </td>
9248
9249 <td class="entry_range">
Zhijun He12744b22014-01-22 15:58:57 -08009250 <p>&gt;= 0</p>
9251 </td>
9252
9253 <td class="entry_tags">
9254 <ul class="entry_tags">
9255 <li><a href="#tag_HAL2">HAL2</a></li>
9256 </ul>
9257 </td>
9258
9259 </tr>
9260 <tr class="entries_header">
9261 <th class="th_details" colspan="5">Details</th>
9262 </tr>
9263 <tr class="entry_cont">
9264 <td class="entry_details" colspan="5">
9265 <p><strong>Deprecated</strong>.<wbr/> Only used by HAL2.<wbr/>x.<wbr/></p>
9266<p>When set to 0,<wbr/> it means no reprocess stream is supported.<wbr/></p>
9267 </td>
9268 </tr>
9269
9270
9271 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9272 <!-- end of entry -->
9273
9274
9275 <tr class="entry" id="static_android.request.maxNumInputStreams">
9276 <td class="entry_name" rowspan="3">
9277 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams
9278 </td>
9279 <td class="entry_type">
9280 <span class="entry_type_name">int32</span>
9281
9282 <span class="entry_type_visibility"> [public]</span>
9283
9284
9285 </td> <!-- entry_type -->
9286
9287 <td class="entry_description">
9288 <p>The maximum numbers of any type of input streams
9289that can be configured and used simultaneously by a camera device.<wbr/></p>
9290 </td>
9291
9292 <td class="entry_units">
9293 </td>
9294
9295 <td class="entry_range">
9296 <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/>
9297&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>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009298 </td>
9299
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009300 <td class="entry_tags">
9301 </td>
9302
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009303 </tr>
Zhijun He12744b22014-01-22 15:58:57 -08009304 <tr class="entries_header">
9305 <th class="th_details" colspan="5">Details</th>
9306 </tr>
9307 <tr class="entry_cont">
9308 <td class="entry_details" colspan="5">
9309 <p>When set to 0,<wbr/> it means no input stream is supported.<wbr/></p>
9310<p>The image format for a input stream can be any supported format provided
9311by android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Formats.<wbr/> When using an input stream,<wbr/> there must be
9312at least one output stream configured to to receive the reprocessed images.<wbr/></p>
9313<p>For example,<wbr/> for Zero Shutter Lag (ZSL) still capture use case,<wbr/> the input
9314stream image format will be RAW_<wbr/>OPAQUE,<wbr/> the associated output stream image format
9315should be JPEG.<wbr/></p>
9316 </td>
9317 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009318
9319
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009320 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9321 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009322
Igor Murashkina46e02f2014-01-09 17:43:38 -08009323
9324 <tr class="entry" id="static_android.request.pipelineMaxDepth">
9325 <td class="entry_name" rowspan="5">
9326 android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth
9327 </td>
9328 <td class="entry_type">
9329 <span class="entry_type_name">byte</span>
9330
9331 <span class="entry_type_visibility"> [public]</span>
9332
9333
9334 </td> <!-- entry_type -->
9335
9336 <td class="entry_description">
9337 <p>Specifies the number of maximum pipeline stages a frame
9338has to go through from when it's exposed to when it's available
9339to the framework.<wbr/></p>
9340 </td>
9341
9342 <td class="entry_units">
9343 </td>
9344
9345 <td class="entry_range">
9346 </td>
9347
9348 <td class="entry_tags">
9349 </td>
9350
9351 </tr>
9352 <tr class="entries_header">
9353 <th class="th_details" colspan="5">Details</th>
9354 </tr>
9355 <tr class="entry_cont">
9356 <td class="entry_details" colspan="5">
9357 <p>A typical minimum value for this is 2 (one stage to expose,<wbr/>
9358one stage to readout) from the sensor.<wbr/> The ISP then usually adds
9359its own stages to do custom HW processing.<wbr/> Further stages may be
9360added by SW processing.<wbr/></p>
9361<p>Depending on what settings are used (e.<wbr/>g.<wbr/> YUV,<wbr/> JPEG) and what
9362processing is enabled (e.<wbr/>g.<wbr/> face detection),<wbr/> the actual pipeline
9363depth (specified by <a href="#dynamic_android.request.pipelineDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Depth</a>) may be less than
9364the max pipeline depth.<wbr/></p>
9365<p>A pipeline depth of X stages is equivalent to a pipeline latency of
9366X frame intervals.<wbr/></p>
9367<p>This value will be 8 or less.<wbr/></p>
9368 </td>
9369 </tr>
9370
9371 <tr class="entries_header">
9372 <th class="th_details" colspan="5">HAL Implementation Details</th>
9373 </tr>
9374 <tr class="entry_cont">
9375 <td class="entry_details" colspan="5">
9376 <p>This value should be 4 or less.<wbr/></p>
9377 </td>
9378 </tr>
9379
9380 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9381 <!-- end of entry -->
9382
Igor Murashkin2e291102014-01-10 14:18:30 -08009383
9384 <tr class="entry" id="static_android.request.partialResultCount">
9385 <td class="entry_name" rowspan="3">
9386 android.<wbr/>request.<wbr/>partial<wbr/>Result<wbr/>Count
9387 </td>
9388 <td class="entry_type">
9389 <span class="entry_type_name">int32</span>
9390
9391 <span class="entry_type_visibility"> [public]</span>
9392
9393
9394 </td> <!-- entry_type -->
9395
9396 <td class="entry_description">
9397 <p>Optional.<wbr/> Defaults to 1.<wbr/> Defines how many sub-components
9398a result will be composed of.<wbr/></p>
9399 </td>
9400
9401 <td class="entry_units">
9402 </td>
9403
9404 <td class="entry_range">
9405 <p>&gt;= 1</p>
9406 </td>
9407
9408 <td class="entry_tags">
9409 </td>
9410
9411 </tr>
9412 <tr class="entries_header">
9413 <th class="th_details" colspan="5">Details</th>
9414 </tr>
9415 <tr class="entry_cont">
9416 <td class="entry_details" colspan="5">
9417 <p>In order to combat the pipeline latency,<wbr/> partial results
9418may be delivered to the application layer from the camera device as
9419soon as they are available.<wbr/></p>
9420<p>A value of 1 means that partial results are not supported.<wbr/></p>
9421<p>A typical use case for this might be: after requesting an AF lock the
9422new AF state might be available 50% of the way through the pipeline.<wbr/>
9423The camera device could then immediately dispatch this state via a
9424partial result to the framework/<wbr/>application layer,<wbr/> and the rest of
9425the metadata via later partial results.<wbr/></p>
9426 </td>
9427 </tr>
9428
9429
9430 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9431 <!-- end of entry -->
9432
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009433
9434
9435 <!-- end of kind -->
9436 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009437 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009438
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009439 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009440 <tr>
9441 <th class="th_name">Property Name</th>
9442 <th class="th_type">Type</th>
9443 <th class="th_description">Description</th>
9444 <th class="th_units">Units</th>
9445 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009446 <th class="th_tags">Tags</th>
9447 </tr>
9448 </thead>
9449
9450 <tbody>
9451
9452
9453
9454
9455
9456
9457
9458
9459
9460
9461 <tr class="entry" id="dynamic_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009462 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009463 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009464 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009465 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009466 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009467
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009468 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009469
9470
9471 </td> <!-- entry_type -->
9472
9473 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009474 <p>A frame counter set by the framework.<wbr/> This value monotonically
9475increases with every new result (that is,<wbr/> each new result has a unique
9476frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009477 </td>
9478
9479 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009480 count of frames
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009481 </td>
9482
9483 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009484 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009485 </td>
9486
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009487 <td class="entry_tags">
9488 </td>
9489
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009490 </tr>
9491 <tr class="entries_header">
9492 <th class="th_details" colspan="5">Details</th>
9493 </tr>
9494 <tr class="entry_cont">
9495 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009496 <p>Reset on release()</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009497 </td>
9498 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009499
9500
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009501 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9502 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009503
9504
9505 <tr class="entry" id="dynamic_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009506 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009507 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009508 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009509 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009510 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009511
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009512 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009513
9514
9515 </td> <!-- entry_type -->
9516
9517 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009518 <p>An application-specified ID for the current
9519request.<wbr/> Must be maintained unchanged in output
9520frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009521 </td>
9522
9523 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009524 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009525 </td>
9526
9527 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009528 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009529 </td>
9530
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009531 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009532 <ul class="entry_tags">
9533 <li><a href="#tag_V1">V1</a></li>
9534 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009535 </td>
9536
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009537 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009538
9539
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009540 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9541 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009542
9543
9544 <tr class="entry" id="dynamic_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009545 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009546 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009547 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009548 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009549 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009550
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009551 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009552
9553 <ul class="entry_type_enum">
9554 <li>
9555 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009556 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
9557for application-bound buffer data.<wbr/> If no
9558application-bound streams exist,<wbr/> no frame should be
9559placed in the output frame queue.<wbr/> If such streams
9560exist,<wbr/> a frame should be placed on the output queue
9561with null metadata but with the necessary output buffer
9562information.<wbr/> Timestamp information should still be
9563included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009564 </li>
9565 <li>
9566 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009567 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
9568only be produced if they are separately
9569enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009570 </li>
9571 </ul>
9572
9573 </td> <!-- entry_type -->
9574
9575 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009576 <p>How much metadata to produce on
9577output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009578 </td>
9579
9580 <td class="entry_units">
9581 </td>
9582
9583 <td class="entry_range">
9584 </td>
9585
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009586 <td class="entry_tags">
9587 </td>
9588
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009589 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009590
9591
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009592 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9593 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009594
9595
9596 <tr class="entry" id="dynamic_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009597 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009598 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009599 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009600 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009601 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009602 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009603
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009604 <span class="entry_type_array">
9605 n
9606 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009607 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009608
9609
9610 </td> <!-- entry_type -->
9611
9612 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009613 <p>Lists which camera output streams image data
9614from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009615 </td>
9616
9617 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009618 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009619 </td>
9620
9621 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08009622 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> List must only include streams that have been
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009623created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009624 </td>
9625
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009626 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009627 <ul class="entry_tags">
9628 <li><a href="#tag_HAL2">HAL2</a></li>
9629 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009630 </td>
9631
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009632 </tr>
9633 <tr class="entries_header">
9634 <th class="th_details" colspan="5">Details</th>
9635 </tr>
9636 <tr class="entry_cont">
9637 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009638 <p>If no output streams are listed,<wbr/> then the image
9639data should simply be discarded.<wbr/> The image data must
9640still be captured for metadata and statistics production,<wbr/>
9641and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009642 </td>
9643 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009644
9645
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009646 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9647 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009648
Igor Murashkina46e02f2014-01-09 17:43:38 -08009649
9650 <tr class="entry" id="dynamic_android.request.pipelineDepth">
9651 <td class="entry_name" rowspan="5">
9652 android.<wbr/>request.<wbr/>pipeline<wbr/>Depth
9653 </td>
9654 <td class="entry_type">
9655 <span class="entry_type_name">byte</span>
9656
9657 <span class="entry_type_visibility"> [public]</span>
9658
9659
9660 </td> <!-- entry_type -->
9661
9662 <td class="entry_description">
9663 <p>Specifies the number of pipeline stages the frame went
9664through from when it was exposed to when the final completed result
9665was available to the framework.<wbr/></p>
9666 </td>
9667
9668 <td class="entry_units">
9669 </td>
9670
9671 <td class="entry_range">
9672 <p>&lt;= <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a></p>
9673 </td>
9674
9675 <td class="entry_tags">
9676 </td>
9677
9678 </tr>
9679 <tr class="entries_header">
9680 <th class="th_details" colspan="5">Details</th>
9681 </tr>
9682 <tr class="entry_cont">
9683 <td class="entry_details" colspan="5">
9684 <p>Depending on what settings are used in the request,<wbr/> and
9685what streams are configured,<wbr/> the data may undergo less processing,<wbr/>
9686and some pipeline stages skipped.<wbr/></p>
9687<p>See <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> for more details.<wbr/></p>
9688 </td>
9689 </tr>
9690
9691 <tr class="entries_header">
9692 <th class="th_details" colspan="5">HAL Implementation Details</th>
9693 </tr>
9694 <tr class="entry_cont">
9695 <td class="entry_details" colspan="5">
9696 <p>This value must always represent the accurate count of how many
9697pipeline stages were actually used.<wbr/></p>
9698 </td>
9699 </tr>
9700
9701 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9702 <!-- end of entry -->
9703
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009704
9705
9706 <!-- end of kind -->
9707 </tbody>
9708
9709 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009710 <tr><td colspan="6" id="section_scaler" class="section">scaler</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009711
9712
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009713 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009714
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009715 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009716 <tr>
9717 <th class="th_name">Property Name</th>
9718 <th class="th_type">Type</th>
9719 <th class="th_description">Description</th>
9720 <th class="th_units">Units</th>
9721 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009722 <th class="th_tags">Tags</th>
9723 </tr>
9724 </thead>
9725
9726 <tbody>
9727
9728
9729
9730
9731
9732
9733
9734
9735
9736
9737 <tr class="entry" id="controls_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009738 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009739 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009740 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009741 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009742 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009743 <span class="entry_type_container">x</span>
9744
9745 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07009746 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009747 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009748 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009749
9750
9751 </td> <!-- entry_type -->
9752
9753 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009754 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
9755<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
9756(width,<wbr/> height).<wbr/> The region of the sensor that is used for
9757output.<wbr/> Each stream must use this rectangle to produce its
9758output,<wbr/> cropping to a smaller region if necessary to
9759maintain the stream's aspect ratio.<wbr/></p>
9760<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009761 </td>
9762
9763 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009764 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
9765 in pixels; (0,<wbr/>0) is top-left corner of
9766 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009767 </td>
9768
9769 <td class="entry_range">
9770 </td>
9771
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009772 <td class="entry_tags">
9773 <ul class="entry_tags">
9774 <li><a href="#tag_BC">BC</a></li>
9775 </ul>
9776 </td>
9777
9778 </tr>
9779 <tr class="entries_header">
9780 <th class="th_details" colspan="5">Details</th>
9781 </tr>
9782 <tr class="entry_cont">
9783 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009784 <p>Any additional per-stream cropping must be done to
9785maximize the final pixel area of the stream.<wbr/></p>
9786<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
9787ratio,<wbr/> then 4:3 streams should use the exact crop
9788region.<wbr/> 16:9 streams should further crop vertically
9789(letterbox).<wbr/></p>
9790<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
9791outputs should crop horizontally (pillarbox),<wbr/> and 16:9
9792streams should match exactly.<wbr/> These additional crops must
9793be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009794<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -08009795times,<wbr/> no matter what the relative aspect ratios of the
9796crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009797corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -08009798larger than active pixel array.<wbr/> Width and height may be
9799rounded to nearest larger supportable width,<wbr/> especially
9800for raw output,<wbr/> where only a few fixed scales may be
9801possible.<wbr/> The width and height of the crop region cannot
9802be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
9803android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
9804activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
9805respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009806 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009807 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009808
9809
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009810 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9811 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009812
9813
9814
9815 <!-- end of kind -->
9816 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009817 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009818
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009819 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009820 <tr>
9821 <th class="th_name">Property Name</th>
9822 <th class="th_type">Type</th>
9823 <th class="th_description">Description</th>
9824 <th class="th_units">Units</th>
9825 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009826 <th class="th_tags">Tags</th>
9827 </tr>
9828 </thead>
9829
9830 <tbody>
9831
9832
9833
9834
9835
9836
9837
9838
9839
9840
9841 <tr class="entry" id="static_android.scaler.availableFormats">
Zhijun Heb8317e22014-01-16 09:47:07 -08009842 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009843 android.<wbr/>scaler.<wbr/>available<wbr/>Formats
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009844 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009845 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009846 <span class="entry_type_name entry_type_name_enum">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009847 <span class="entry_type_container">x</span>
9848
9849 <span class="entry_type_array">
9850 n
9851 </span>
Eino-Ville Talvalad4e240a2013-08-08 12:56:37 -07009852 <span class="entry_type_visibility"> [public as imageFormat]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009853
9854 <ul class="entry_type_enum">
9855 <li>
9856 <span class="entry_type_enum_name">RAW_SENSOR</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009857 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009858 <span class="entry_type_enum_value">0x20</span>
9859 </li>
9860 <li>
9861 <span class="entry_type_enum_name">YV12</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009862 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009863 <span class="entry_type_enum_value">0x32315659</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009864 <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009865 </li>
9866 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009867 <span class="entry_type_enum_name">YCrCb_420_SP</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009868 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009869 <span class="entry_type_enum_value">0x11</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009870 <span class="entry_type_enum_notes"><p>NV21</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009871 </li>
9872 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009873 <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span>
9874 <span class="entry_type_enum_value">0x22</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009875 <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009876 </li>
9877 <li>
9878 <span class="entry_type_enum_name">YCbCr_420_888</span>
9879 <span class="entry_type_enum_value">0x23</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009880 <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009881 </li>
9882 <li>
9883 <span class="entry_type_enum_name">BLOB</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009884 <span class="entry_type_enum_value">0x21</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009885 <span class="entry_type_enum_notes"><p>JPEG format</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009886 </li>
9887 </ul>
9888
9889 </td> <!-- entry_type -->
9890
9891 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009892 <p>The list of image formats that are supported by this
9893camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009894 </td>
9895
9896 <td class="entry_units">
9897 </td>
9898
9899 <td class="entry_range">
9900 </td>
9901
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009902 <td class="entry_tags">
9903 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009904 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009905 </ul>
9906 </td>
9907
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009908 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009909 <tr class="entries_header">
9910 <th class="th_details" colspan="5">Details</th>
9911 </tr>
9912 <tr class="entry_cont">
9913 <td class="entry_details" colspan="5">
9914 <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p>
9915<p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p>
9916 </td>
9917 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009918
Zhijun Heb8317e22014-01-16 09:47:07 -08009919 <tr class="entries_header">
9920 <th class="th_details" colspan="5">HAL Implementation Details</th>
9921 </tr>
9922 <tr class="entry_cont">
9923 <td class="entry_details" colspan="5">
9924 <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
9925system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
9926<p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform
9927gralloc module will select a format based on the usage flags provided
9928by the camera HAL device and the other endpoint of the stream.<wbr/> It is
9929usually used by preview and recording streams,<wbr/> where the application doesn't
9930need access the image data.<wbr/></p>
9931<p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream
9932needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p>
9933<p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p>
9934 </td>
9935 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009936
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009937 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9938 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009939
9940
9941 <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009942 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009943 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009944 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009945 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009946 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009947 <span class="entry_type_container">x</span>
9948
9949 <span class="entry_type_array">
9950 n
9951 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009952 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009953
9954
9955 </td> <!-- entry_type -->
9956
9957 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009958 <p>The minimum frame duration that is supported
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009959for each resolution in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009960 </td>
9961
9962 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009963 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009964 </td>
9965
9966 <td class="entry_range">
9967 </td>
9968
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009969 <td class="entry_tags">
9970 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009971 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009972 </ul>
9973 </td>
9974
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009975 </tr>
9976 <tr class="entries_header">
9977 <th class="th_details" colspan="5">Details</th>
9978 </tr>
9979 <tr class="entry_cont">
9980 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009981 <p>This corresponds to the minimum steady-state frame duration when only
9982that JPEG stream is active and captured in a burst,<wbr/> with all
9983processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST.<wbr/></p>
9984<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009985frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -08009986durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009987 </td>
9988 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009989
9990
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009991 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9992 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009993
9994
9995 <tr class="entry" id="static_android.scaler.availableJpegSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -08009996 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009997 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009998 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009999 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010000 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010001 <span class="entry_type_container">x</span>
10002
10003 <span class="entry_type_array">
10004 n x 2
10005 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010006 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010007
10008
10009 </td> <!-- entry_type -->
10010
10011 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -080010012 <p>The JPEG resolutions that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010013 </td>
10014
10015 <td class="entry_units">
10016 </td>
10017
10018 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010019 </td>
10020
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010021 <td class="entry_tags">
10022 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010023 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010024 </ul>
10025 </td>
10026
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010027 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -080010028 <tr class="entries_header">
10029 <th class="th_details" colspan="5">Details</th>
10030 </tr>
10031 <tr class="entry_cont">
10032 <td class="entry_details" colspan="5">
10033 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support
10034sensor 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>
10035 </td>
10036 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010037
Zhijun Heb8317e22014-01-16 09:47:07 -080010038 <tr class="entries_header">
10039 <th class="th_details" colspan="5">HAL Implementation Details</th>
10040 </tr>
10041 <tr class="entry_cont">
10042 <td class="entry_details" colspan="5">
10043 <p>The HAL must include sensor maximum resolution
10044(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/>
10045and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p>
10046 </td>
10047 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010048
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010049 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10050 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010051
10052
10053 <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010054 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010055 android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010056 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010057 <td class="entry_type">
Igor Murashkinf11a4df2013-05-07 10:00:46 -070010058 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010059
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010060 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010061
10062
10063 </td> <!-- entry_type -->
10064
10065 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010066 <p>The maximum ratio between active area width
10067and crop region width,<wbr/> or between active area height and
10068crop region height,<wbr/> if the crop region height is larger
10069than width</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010070 </td>
10071
10072 <td class="entry_units">
10073 </td>
10074
10075 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080010076 <p>&gt;=1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010077 </td>
10078
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010079 <td class="entry_tags">
Igor Murashkinf11a4df2013-05-07 10:00:46 -070010080 <ul class="entry_tags">
10081 <li><a href="#tag_BC">BC</a></li>
10082 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010083 </td>
10084
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010085 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010086
10087
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010088 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10089 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010090
10091
10092 <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010093 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010094 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010095 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010096 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010097 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010098 <span class="entry_type_container">x</span>
10099
10100 <span class="entry_type_array">
10101 n
10102 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010103 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010104
10105
10106 </td> <!-- entry_type -->
10107
10108 <td class="entry_description">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010109 <p>For each available processed output size (defined in
10110<a href="#static_android.scaler.availableProcessedSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes</a>),<wbr/> this property lists the
10111minimum supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010112 </td>
10113
10114 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010115 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010116 </td>
10117
10118 <td class="entry_range">
10119 </td>
10120
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010121 <td class="entry_tags">
10122 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010123 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010124 </ul>
10125 </td>
10126
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010127 </tr>
10128 <tr class="entries_header">
10129 <th class="th_details" colspan="5">Details</th>
10130 </tr>
10131 <tr class="entry_cont">
10132 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010133 <p>This should correspond to the frame duration when only that processed
10134stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
10135set to FAST.<wbr/></p>
10136<p>When multiple streams are configured,<wbr/> the minimum frame duration will
10137be &gt;= max(individual stream min durations).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010138 </td>
10139 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010140
10141
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010142 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10143 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010144
10145
10146 <tr class="entry" id="static_android.scaler.availableProcessedSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -080010147 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010148 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010149 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010150 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010151 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010152 <span class="entry_type_container">x</span>
10153
10154 <span class="entry_type_array">
10155 n x 2
10156 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010157 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010158
10159
10160 </td> <!-- entry_type -->
10161
10162 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010163 <p>The resolutions available for use with
10164processed output streams,<wbr/> such as YV12,<wbr/> NV12,<wbr/> and
10165platform opaque YUV/<wbr/>RGB streams to the GPU or video
Zhijun Heb8317e22014-01-16 09:47:07 -080010166encoders.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010167 </td>
10168
10169 <td class="entry_units">
10170 </td>
10171
10172 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010173 </td>
10174
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010175 <td class="entry_tags">
10176 <ul class="entry_tags">
10177 <li><a href="#tag_BC">BC</a></li>
10178 </ul>
10179 </td>
10180
10181 </tr>
10182 <tr class="entries_header">
10183 <th class="th_details" colspan="5">Details</th>
10184 </tr>
10185 <tr class="entry_cont">
10186 <td class="entry_details" colspan="5">
Zhijun Heb8317e22014-01-16 09:47:07 -080010187 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p>
10188<p>For a given use case,<wbr/> the actual maximum supported resolution
10189may be lower than what is listed here,<wbr/> depending on the destination
10190Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
10191the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
10192smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
10193can provide.<wbr/></p>
10194<p>Please reference the documentation for the image data destination to
10195check if it limits the maximum size for image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010196 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010197 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010198
Zhijun Heb8317e22014-01-16 09:47:07 -080010199 <tr class="entries_header">
10200 <th class="th_details" colspan="5">HAL Implementation Details</th>
10201 </tr>
10202 <tr class="entry_cont">
10203 <td class="entry_details" colspan="5">
10204 <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/>
10205the HAL must include all JPEG sizes listed in android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
10206and each below resolution if it is smaller than or equal to the sensor
10207maximum resolution (if they are not listed in JPEG sizes already):</p>
10208<ul>
10209<li>240p (320 x 240)</li>
10210<li>480p (640 x 480)</li>
10211<li>720p (1280 x 720)</li>
10212<li>1080p (1920 x 1080)</li>
10213</ul>
10214<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/>
10215the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p>
10216 </td>
10217 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010218
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010219 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10220 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010221
10222
10223 <tr class="entry" id="static_android.scaler.availableRawMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010224 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010225 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010226 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010227 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010228 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010229 <span class="entry_type_container">x</span>
10230
10231 <span class="entry_type_array">
10232 n
10233 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010234 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010235
10236
10237 </td> <!-- entry_type -->
10238
10239 <td class="entry_description">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010240 <p>For each available raw output size (defined in
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010241<a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a>),<wbr/> this property lists the minimum
10242supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010243 </td>
10244
10245 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010246 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010247 </td>
10248
10249 <td class="entry_range">
10250 </td>
10251
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010252 <td class="entry_tags">
10253 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010254 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010255 </ul>
10256 </td>
10257
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010258 </tr>
10259 <tr class="entries_header">
10260 <th class="th_details" colspan="5">Details</th>
10261 </tr>
10262 <tr class="entry_cont">
10263 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010264 <p>Should correspond to the frame duration when only the raw stream is
10265active.<wbr/></p>
10266<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010267frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -080010268durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010269 </td>
10270 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010271
10272
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010273 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10274 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010275
10276
10277 <tr class="entry" id="static_android.scaler.availableRawSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010278 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010279 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010280 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010281 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010282 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010283 <span class="entry_type_container">x</span>
10284
10285 <span class="entry_type_array">
10286 n x 2
10287 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010288 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010289
10290
10291 </td> <!-- entry_type -->
10292
10293 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010294 <p>The resolutions available for use with raw
10295sensor output streams,<wbr/> listed as width,<wbr/>
10296height</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010297 </td>
10298
10299 <td class="entry_units">
10300 </td>
10301
10302 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010303 <p>Must include: - sensor maximum resolution</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010304 </td>
10305
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010306 <td class="entry_tags">
10307 </td>
10308
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010309 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010310
10311
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010312 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10313 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010314
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010315
10316
10317 <!-- end of kind -->
10318 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010319 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010320
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010321 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010322 <tr>
10323 <th class="th_name">Property Name</th>
10324 <th class="th_type">Type</th>
10325 <th class="th_description">Description</th>
10326 <th class="th_units">Units</th>
10327 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010328 <th class="th_tags">Tags</th>
10329 </tr>
10330 </thead>
10331
10332 <tbody>
10333
10334
10335
10336
10337
10338
10339
10340
10341
10342
10343 <tr class="entry" id="dynamic_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010344 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010345 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010346 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010347 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010348 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010349 <span class="entry_type_container">x</span>
10350
10351 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -070010352 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010353 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010354 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010355
10356
10357 </td> <!-- entry_type -->
10358
10359 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010360 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
10361<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
10362(width,<wbr/> height).<wbr/> The region of the sensor that is used for
10363output.<wbr/> Each stream must use this rectangle to produce its
10364output,<wbr/> cropping to a smaller region if necessary to
10365maintain the stream's aspect ratio.<wbr/></p>
10366<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010367 </td>
10368
10369 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010370 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
10371 in pixels; (0,<wbr/>0) is top-left corner of
10372 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010373 </td>
10374
10375 <td class="entry_range">
10376 </td>
10377
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010378 <td class="entry_tags">
10379 <ul class="entry_tags">
10380 <li><a href="#tag_BC">BC</a></li>
10381 </ul>
10382 </td>
10383
10384 </tr>
10385 <tr class="entries_header">
10386 <th class="th_details" colspan="5">Details</th>
10387 </tr>
10388 <tr class="entry_cont">
10389 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010390 <p>Any additional per-stream cropping must be done to
10391maximize the final pixel area of the stream.<wbr/></p>
10392<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
10393ratio,<wbr/> then 4:3 streams should use the exact crop
10394region.<wbr/> 16:9 streams should further crop vertically
10395(letterbox).<wbr/></p>
10396<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
10397outputs should crop horizontally (pillarbox),<wbr/> and 16:9
10398streams should match exactly.<wbr/> These additional crops must
10399be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010400<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -080010401times,<wbr/> no matter what the relative aspect ratios of the
10402crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010403corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -080010404larger than active pixel array.<wbr/> Width and height may be
10405rounded to nearest larger supportable width,<wbr/> especially
10406for raw output,<wbr/> where only a few fixed scales may be
10407possible.<wbr/> The width and height of the crop region cannot
10408be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
10409android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
10410activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
10411respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010412 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010413 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010414
10415
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010416 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10417 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010418
10419
10420
10421 <!-- end of kind -->
10422 </tbody>
10423
10424 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010425 <tr><td colspan="6" id="section_sensor" class="section">sensor</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010426
10427
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010428 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010429
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010430 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010431 <tr>
10432 <th class="th_name">Property Name</th>
10433 <th class="th_type">Type</th>
10434 <th class="th_description">Description</th>
10435 <th class="th_units">Units</th>
10436 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010437 <th class="th_tags">Tags</th>
10438 </tr>
10439 </thead>
10440
10441 <tbody>
10442
10443
10444
10445
10446
10447
10448
10449
10450
10451
10452 <tr class="entry" id="controls_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010453 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010454 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010455 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010456 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010457 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010458
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010459 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010460
10461
10462 </td> <!-- entry_type -->
10463
10464 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010465 <p>Duration each pixel is exposed to
10466light.<wbr/></p>
10467<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
10468duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010469 </td>
10470
10471 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010472 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010473 </td>
10474
10475 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010476 <p><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010477 </td>
10478
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010479 <td class="entry_tags">
10480 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010481 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010482 </ul>
10483 </td>
10484
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010485 </tr>
10486 <tr class="entries_header">
10487 <th class="th_details" colspan="5">Details</th>
10488 </tr>
10489 <tr class="entry_cont">
10490 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010491 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010492 </td>
10493 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010494
10495
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010496 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10497 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010498
10499
10500 <tr class="entry" id="controls_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010501 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010502 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010503 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010504 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010505 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010506
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010507 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010508
10509
10510 </td> <!-- entry_type -->
10511
10512 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010513 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010514start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010515 </td>
10516
10517 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010518 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010519 </td>
10520
10521 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010522 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
10523android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
10524is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010525 </td>
10526
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010527 <td class="entry_tags">
10528 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010529 <li><a href="#tag_V1">V1</a></li>
10530 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010531 </ul>
10532 </td>
10533
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010534 </tr>
10535 <tr class="entries_header">
10536 <th class="th_details" colspan="5">Details</th>
10537 </tr>
10538 <tr class="entry_cont">
10539 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010540 <p>The maximum frame rate that can be supported by a camera subsystem is
10541a function of many factors:</p>
10542<ul>
10543<li>Requested resolutions of output image streams</li>
10544<li>Availability of binning /<wbr/> skipping modes on the imager</li>
10545<li>The bandwidth of the imager interface</li>
10546<li>The bandwidth of the various ISP processing blocks</li>
10547</ul>
10548<p>Since these factors can vary greatly between different ISPs and
10549sensors,<wbr/> the camera abstraction tries to represent the bandwidth
10550restrictions with as simple a model as possible.<wbr/></p>
10551<p>The model presented has the following characteristics:</p>
10552<ul>
10553<li>The image sensor is always configured to output the smallest
10554resolution possible given the application's requested output stream
10555sizes.<wbr/> The smallest resolution is defined as being at least as large
10556as the largest requested output stream size; the camera pipeline must
10557never digitally upsample sensor data when the crop region covers the
10558whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
10559resolutions are configured,<wbr/> the sensor can provide a higher frame
10560rate.<wbr/></li>
10561<li>Since any request may use any or all the currently configured
10562output streams,<wbr/> the sensor and ISP must be configured to support
10563scaling a single capture to all the streams at the same time.<wbr/> This
10564means the camera pipeline must be ready to produce the largest
10565requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
10566frame rate of a given configured stream set is governed only by the
10567largest requested stream resolution.<wbr/></li>
10568<li>Using more than one output stream in a request does not affect the
10569frame duration.<wbr/></li>
10570<li>JPEG streams act like processed YUV streams in requests for which
10571they are not included; in requests in which they are directly
10572referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
10573JPEG stream requires the underlying YUV data to always be ready for
10574use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
10575frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
10576<li>The JPEG processor can run concurrently to the rest of the camera
10577pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
10578</ul>
10579<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
10580is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
10581These are used to determine the maximum frame rate /<wbr/> minimum frame
10582duration that is possible for a given stream configuration.<wbr/></p>
10583<p>Specifically,<wbr/> the application can use the following rules to
10584determine the minimum frame duration it can request from the HAL
10585device:</p>
10586<ol>
10587<li>Given the application's currently configured set of output
10588streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
10589<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
10590<code>SP</code>.<wbr/></li>
10591<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
10592count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
10593<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
10594<li>If <code>RJ</code> is greater than <code>RP</code>,<wbr/> set <code>RP</code> equal to <code>RJ</code>.<wbr/> If there is
10595no exact match for <code>RP == RJ</code> (in particular there isn't an available
10596processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
10597to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
10598there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
10599the processed resolution closest to <code>RJ</code>.<wbr/></li>
10600<li>If <code>RP</code> is greater than <code>RR</code>,<wbr/> set <code>RR</code> equal to <code>RP</code>.<wbr/> If there is
10601no exact match for <code>RR == RP</code> (in particular there isn't an available
10602raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
10603or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
10604there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
10605the raw resolution closest to <code>RP</code>.<wbr/></li>
10606<li>Look up the matching minimum frame durations in the property lists
10607<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
10608<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
10609<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
10610minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
10611<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
10612supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
10613<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
10614supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
10615<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
10616the application,<wbr/> then the HAL will have to delay JPEG-using requests
10617whenever the JPEG encoder is still busy processing an older capture.<wbr/>
10618This will happen whenever a JPEG-using request starts capture less
10619than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
10620supported frame duration will vary between the values calculated in
10621#6 and #7.<wbr/></li>
10622</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010623 </td>
10624 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010625
10626
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010627 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10628 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010629
10630
10631 <tr class="entry" id="controls_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010632 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010633 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010634 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010635 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010636 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010637
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010638 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010639
10640
10641 </td> <!-- entry_type -->
10642
10643 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010644 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010645implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080010646below 'maximum analog sensitivity'.<wbr/></p>
10647<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
10648gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010649 </td>
10650
10651 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010652 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010653 </td>
10654
10655 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010656 <p><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010657 </td>
10658
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010659 <td class="entry_tags">
10660 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010661 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010662 </ul>
10663 </td>
10664
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010665 </tr>
10666 <tr class="entries_header">
10667 <th class="th_details" colspan="5">Details</th>
10668 </tr>
10669 <tr class="entry_cont">
10670 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010671 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010672 </td>
10673 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010674
10675
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010676 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10677 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010678
Igor Murashkina46e02f2014-01-09 17:43:38 -080010679
10680 <tr class="entry" id="controls_android.sensor.testPatternData">
10681 <td class="entry_name" rowspan="5">
10682 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
10683 </td>
10684 <td class="entry_type">
10685 <span class="entry_type_name">int32</span>
10686 <span class="entry_type_container">x</span>
10687
10688 <span class="entry_type_array">
10689 4
10690 </span>
10691 <span class="entry_type_visibility"> [public]</span>
10692
10693
10694 </td> <!-- entry_type -->
10695
10696 <td class="entry_description">
10697 <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
10698when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
10699 </td>
10700
10701 <td class="entry_units">
10702 </td>
10703
10704 <td class="entry_range">
10705 <p>Optional.<wbr/>
10706Must be supported if <a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a> contains
10707SOLID_<wbr/>COLOR.<wbr/></p>
10708 </td>
10709
10710 <td class="entry_tags">
10711 </td>
10712
10713 </tr>
10714 <tr class="entries_header">
10715 <th class="th_details" colspan="5">Details</th>
10716 </tr>
10717 <tr class="entry_cont">
10718 <td class="entry_details" colspan="5">
10719 <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
10720The camera device then uses the most significant X bits
10721that correspond to how many bits are in its Bayer raw sensor
10722output.<wbr/></p>
10723<p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
1072410 most significant bits from each color channel.<wbr/></p>
10725 </td>
10726 </tr>
10727
10728 <tr class="entries_header">
10729 <th class="th_details" colspan="5">HAL Implementation Details</th>
10730 </tr>
10731 <tr class="entry_cont">
10732 <td class="entry_details" colspan="5">
10733
10734 </td>
10735 </tr>
10736
10737 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10738 <!-- end of entry -->
10739
10740
10741 <tr class="entry" id="controls_android.sensor.testPatternMode">
10742 <td class="entry_name" rowspan="5">
10743 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
10744 </td>
10745 <td class="entry_type">
10746 <span class="entry_type_name entry_type_name_enum">int32</span>
10747
10748 <span class="entry_type_visibility"> [public]</span>
10749
10750 <ul class="entry_type_enum">
10751 <li>
10752 <span class="entry_type_enum_name">OFF</span>
10753 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
10754device returns captures from the image sensor.<wbr/></p></span>
10755 </li>
10756 <li>
10757 <span class="entry_type_enum_name">SOLID_COLOR</span>
10758 <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
10759respective color channel provided in
10760<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
10761<p>For example:</p>
10762<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10763</code></pre>
10764<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
10765<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10766</code></pre>
10767<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
10768are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
10769 </li>
10770 <li>
10771 <span class="entry_type_enum_name">COLOR_BARS</span>
10772 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
10773<p>The vertical bars (left-to-right) are as follows:</p>
10774<ul>
10775<li>100% white</li>
10776<li>yellow</li>
10777<li>cyan</li>
10778<li>green</li>
10779<li>magenta</li>
10780<li>red</li>
10781<li>blue</li>
10782<li>black</li>
10783</ul>
10784<p>In general the image would look like the following:</p>
10785<pre><code>W Y C G M R B K
10786W Y C G M R B K
10787W Y C G M R B K
10788W Y C G M R B K
10789W Y C G M R B K
10790.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10791.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10792.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10793
10794(B = Blue,<wbr/> K = Black)
10795</code></pre>
10796<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
10797When this is not possible,<wbr/> the bar size should be rounded
10798down to the nearest integer and the pattern can repeat
10799on the right side.<wbr/></p>
10800<p>Each bar's height must always take up the full sensor
10801pixel array height.<wbr/></p>
10802<p>Each pixel in this test pattern must be set to either
108030% intensity or 100% intensity.<wbr/></p></span>
10804 </li>
10805 <li>
10806 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
10807 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
10808each bar should start at its specified color at the top,<wbr/>
10809and fade to gray at the bottom.<wbr/></p>
10810<p>Furthermore each bar is further subdivided into a left and
10811right half.<wbr/> The left half should have a smooth gradient,<wbr/>
10812and the right half should have a quantized gradient.<wbr/></p>
10813<p>In particular,<wbr/> the right half's should consist of blocks of the
10814same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
10815<p>The least significant bits in the quantized gradient should
10816be copied from the most significant bits of the smooth gradient.<wbr/></p>
10817<p>The height of each bar should always be a multiple of 128.<wbr/>
10818When this is not the case,<wbr/> the pattern should repeat at the bottom
10819of the image.<wbr/></p></span>
10820 </li>
10821 <li>
10822 <span class="entry_type_enum_name">PN9</span>
10823 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
10824generated from a PN9 512-bit sequence (typically implemented
10825in hardware with a linear feedback shift register).<wbr/></p>
10826<p>The generator should be reset at the beginning of each frame,<wbr/>
10827and thus each subsequent raw frame with this test pattern should
10828be exactly the same as the last.<wbr/></p></span>
10829 </li>
10830 <li>
10831 <span class="entry_type_enum_name">CUSTOM1</span>
10832 <span class="entry_type_enum_value">256</span>
10833 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
10834available only on this camera device are at least this numeric
10835value.<wbr/></p>
10836<p>All of the custom test patterns will be static
10837(that is the raw image must not vary from frame to frame).<wbr/></p></span>
10838 </li>
10839 </ul>
10840
10841 </td> <!-- entry_type -->
10842
10843 <td class="entry_description">
10844 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
10845doing a real exposure from the camera.<wbr/></p>
10846 </td>
10847
10848 <td class="entry_units">
10849 </td>
10850
10851 <td class="entry_range">
10852 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
10853<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
10854 </td>
10855
10856 <td class="entry_tags">
10857 </td>
10858
10859 </tr>
10860 <tr class="entries_header">
10861 <th class="th_details" colspan="5">Details</th>
10862 </tr>
10863 <tr class="entry_cont">
10864 <td class="entry_details" colspan="5">
10865 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
10866by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
10867work as normal.<wbr/></p>
10868<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
10869occur (and that the test pattern remain unmodified,<wbr/> since the flash
10870would not actually affect it).<wbr/></p>
10871 </td>
10872 </tr>
10873
10874 <tr class="entries_header">
10875 <th class="th_details" colspan="5">HAL Implementation Details</th>
10876 </tr>
10877 <tr class="entry_cont">
10878 <td class="entry_details" colspan="5">
10879 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
10880<p>The HAL may choose to substitute test patterns from the sensor
10881with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
10882indistinguishable to the ISP whether the data came from the
10883sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
10884 </td>
10885 </tr>
10886
10887 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10888 <!-- end of entry -->
10889
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010890
10891
10892 <!-- end of kind -->
10893 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010894 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010895
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010896 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010897 <tr>
10898 <th class="th_name">Property Name</th>
10899 <th class="th_type">Type</th>
10900 <th class="th_description">Description</th>
10901 <th class="th_units">Units</th>
10902 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010903 <th class="th_tags">Tags</th>
10904 </tr>
10905 </thead>
10906
10907 <tbody>
10908
10909
10910
10911
10912
10913
10914
10915
10916
10917
10918
10919
10920 <tr class="entry" id="static_android.sensor.info.activeArraySize">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010921 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010922 android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010923 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010924 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010925 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010926 <span class="entry_type_container">x</span>
10927
10928 <span class="entry_type_array">
10929 4
10930 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010931 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010932 <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010933
10934
10935 </td> <!-- entry_type -->
10936
10937 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010938 <p>Area of raw data which corresponds to only
Zhijun Hebdc94c42014-01-21 18:28:30 -080010939active pixels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010940 </td>
10941
10942 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010943 </td>
10944
10945 <td class="entry_range">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010946 <p>This array contains <code>(xmin,<wbr/> ymin,<wbr/> width,<wbr/> height)</code>.<wbr/> The <code>(xmin,<wbr/> ymin)</code> must be
10947&gt;= <code>(0,<wbr/>0)</code>.<wbr/> The <code>(width,<wbr/> height)</code> must be &lt;=
10948<code><a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a></code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010949 </td>
10950
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010951 <td class="entry_tags">
10952 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010953 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010954 </ul>
10955 </td>
10956
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010957 </tr>
Zhijun Hebdc94c42014-01-21 18:28:30 -080010958 <tr class="entries_header">
10959 <th class="th_details" colspan="5">Details</th>
10960 </tr>
10961 <tr class="entry_cont">
10962 <td class="entry_details" colspan="5">
10963 <p>It is smaller or equal to
10964sensor full pixel array,<wbr/> which could include the black calibration pixels.<wbr/></p>
10965 </td>
10966 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010967
10968
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010969 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10970 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010971
10972
Zhijun He69fc0ea2013-07-17 09:42:58 -070010973 <tr class="entry" id="static_android.sensor.info.sensitivityRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010974 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010975 android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010976 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010977 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010978 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010979 <span class="entry_type_container">x</span>
10980
10981 <span class="entry_type_array">
Zhijun He69fc0ea2013-07-17 09:42:58 -070010982 2
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010983 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010984 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010985 <div class="entry_type_notes">Range of supported sensitivities</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010986
10987
10988 </td> <!-- entry_type -->
10989
10990 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010991 <p>Range of valid sensitivities</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010992 </td>
10993
10994 <td class="entry_units">
10995 </td>
10996
10997 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010998 <p>Min &lt;= 100,<wbr/> Max &gt;= 1600</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010999 </td>
11000
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011001 <td class="entry_tags">
11002 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011003 <li><a href="#tag_BC">BC</a></li>
11004 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011005 </ul>
11006 </td>
11007
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011008 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011009
11010
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011011 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11012 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011013
11014
11015 <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011016 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011017 android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011018 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011019 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011020 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011021
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011022 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011023
11024 <ul class="entry_type_enum">
11025 <li>
11026 <span class="entry_type_enum_name">RGGB</span>
11027 </li>
11028 <li>
11029 <span class="entry_type_enum_name">GRBG</span>
11030 </li>
11031 <li>
11032 <span class="entry_type_enum_name">GBRG</span>
11033 </li>
11034 <li>
11035 <span class="entry_type_enum_name">BGGR</span>
11036 </li>
11037 <li>
11038 <span class="entry_type_enum_name">RGB</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011039 <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
11040values for each pixel,<wbr/> instead of just 1 16-bit value
11041per pixel.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011042 </li>
11043 </ul>
11044
11045 </td> <!-- entry_type -->
11046
11047 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011048 <p>Arrangement of color filters on sensor;
Igor Murashkin8aa2a112013-12-09 12:06:17 -080011049represents the colors in the top-left 2x2 section of
Igor Murashkin0b080452013-12-27 15:30:25 -080011050the sensor,<wbr/> in reading order</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011051 </td>
11052
11053 <td class="entry_units">
11054 </td>
11055
11056 <td class="entry_range">
11057 </td>
11058
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011059 <td class="entry_tags">
11060 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011061 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011062 </ul>
11063 </td>
11064
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011065 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011066
11067
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011068 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11069 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011070
11071
11072 <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
Igor Murashkin061c6002014-01-27 16:00:26 -080011073 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011074 android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011075 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011076 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011077 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011078 <span class="entry_type_container">x</span>
11079
11080 <span class="entry_type_array">
11081 2
11082 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011083 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011084 <div class="entry_type_notes">nanoseconds</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011085
11086
11087 </td> <!-- entry_type -->
11088
11089 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011090 <p>Range of valid exposure
Igor Murashkin061c6002014-01-27 16:00:26 -080011091times used by <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011092 </td>
11093
11094 <td class="entry_units">
11095 </td>
11096
11097 <td class="entry_range">
Igor Murashkin061c6002014-01-27 16:00:26 -080011098 <p>Min &lt;= 100e3 (100 us),<wbr/> Max &gt;= 1e9 (1
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011099sec)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011100 </td>
11101
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011102 <td class="entry_tags">
11103 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011104 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011105 </ul>
11106 </td>
11107
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011108 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011109
Igor Murashkin061c6002014-01-27 16:00:26 -080011110 <tr class="entries_header">
11111 <th class="th_details" colspan="5">HAL Implementation Details</th>
11112 </tr>
11113 <tr class="entry_cont">
11114 <td class="entry_details" colspan="5">
11115 <p>The maximum of the range must be at least
111161 second.<wbr/> It should be at least 30 seconds.<wbr/></p>
11117 </td>
11118 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011119
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011120 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11121 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011122
11123
11124 <tr class="entry" id="static_android.sensor.info.maxFrameDuration">
Igor Murashkin061c6002014-01-27 16:00:26 -080011125 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011126 android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011127 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011128 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011129 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011130
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011131 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011132
11133
11134 </td> <!-- entry_type -->
11135
11136 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011137 <p>Maximum possible frame duration (minimum frame
Igor Murashkin061c6002014-01-27 16:00:26 -080011138rate).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011139 </td>
11140
11141 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011142 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011143 </td>
11144
11145 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011146 <p>&gt;= 30e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011147 </td>
11148
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011149 <td class="entry_tags">
11150 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011151 <li><a href="#tag_BC">BC</a></li>
11152 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011153 </ul>
11154 </td>
11155
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011156 </tr>
11157 <tr class="entries_header">
11158 <th class="th_details" colspan="5">Details</th>
11159 </tr>
11160 <tr class="entry_cont">
11161 <td class="entry_details" colspan="5">
Igor Murashkin061c6002014-01-27 16:00:26 -080011162 <p>The largest possible android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
11163that will be accepted by the camera device.<wbr/> Attempting to use
11164frame durations beyond the maximum will result in the frame duration
11165being clipped to the maximum.<wbr/> See that control
11166for a full definition of frame durations.<wbr/></p>
11167<p>Refer to
11168<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>,<wbr/>
11169<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/> and
11170<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a> for the minimum
11171frame duration values.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011172 </td>
11173 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011174
Igor Murashkin061c6002014-01-27 16:00:26 -080011175 <tr class="entries_header">
11176 <th class="th_details" colspan="5">HAL Implementation Details</th>
11177 </tr>
11178 <tr class="entry_cont">
11179 <td class="entry_details" colspan="5">
11180 <p>This value must be at least 1 second.<wbr/> It should be at least 30
11181seconds (30e9 ns).<wbr/></p>
11182<p>android.<wbr/>sensor.<wbr/>max<wbr/>Frame<wbr/>Duration must be greater or equal to the
11183android.<wbr/>sensor.<wbr/>exposure<wbr/>Time<wbr/>Range max value (since exposure time
11184overrides frame duration).<wbr/></p>
11185 </td>
11186 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011187
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011188 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11189 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011190
11191
11192 <tr class="entry" id="static_android.sensor.info.physicalSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011193 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011194 android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011195 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011196 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011197 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011198 <span class="entry_type_container">x</span>
11199
11200 <span class="entry_type_array">
11201 2
11202 </span>
Timothy Knightec817d52013-08-16 16:15:29 -070011203 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011204 <div class="entry_type_notes">width x height in millimeters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011205
11206
11207 </td> <!-- entry_type -->
11208
11209 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011210 <p>The physical dimensions of the full pixel
11211array</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011212 </td>
11213
11214 <td class="entry_units">
11215 </td>
11216
11217 <td class="entry_range">
11218 </td>
11219
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011220 <td class="entry_tags">
11221 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011222 <li><a href="#tag_V1">V1</a></li>
11223 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011224 </ul>
11225 </td>
11226
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011227 </tr>
11228 <tr class="entries_header">
11229 <th class="th_details" colspan="5">Details</th>
11230 </tr>
11231 <tr class="entry_cont">
11232 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011233 <p>Needed for FOV calculation for old API</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011234 </td>
11235 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011236
11237
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011238 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11239 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011240
11241
11242 <tr class="entry" id="static_android.sensor.info.pixelArraySize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011243 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011244 android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011245 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011246 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011247 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011248 <span class="entry_type_container">x</span>
11249
11250 <span class="entry_type_array">
11251 2
11252 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070011253 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011254
11255
11256 </td> <!-- entry_type -->
11257
11258 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011259 <p>Dimensions of full pixel array,<wbr/> possibly
Zhijun Hebdc94c42014-01-21 18:28:30 -080011260including black calibration pixels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011261 </td>
11262
11263 <td class="entry_units">
11264 </td>
11265
11266 <td class="entry_range">
11267 </td>
11268
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011269 <td class="entry_tags">
11270 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011271 <li><a href="#tag_DNG">DNG</a></li>
11272 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011273 </ul>
11274 </td>
11275
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011276 </tr>
11277 <tr class="entries_header">
11278 <th class="th_details" colspan="5">Details</th>
11279 </tr>
11280 <tr class="entry_cont">
11281 <td class="entry_details" colspan="5">
Zhijun Hebdc94c42014-01-21 18:28:30 -080011282 <p>The maximum output resolution for raw format in
11283<a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a> will be equal to this size.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011284 </td>
11285 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011286
11287
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011288 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11289 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011290
11291
11292 <tr class="entry" id="static_android.sensor.info.whiteLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011293 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011294 android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011295 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011296 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011297 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011298
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011299 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011300
11301
11302 </td> <!-- entry_type -->
11303
11304 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011305 <p>Maximum raw value output by
11306sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011307 </td>
11308
11309 <td class="entry_units">
11310 </td>
11311
11312 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011313 <p>&gt; 1024 (10-bit output)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011314 </td>
11315
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011316 <td class="entry_tags">
11317 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011318 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011319 </ul>
11320 </td>
11321
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011322 </tr>
11323 <tr class="entries_header">
11324 <th class="th_details" colspan="5">Details</th>
11325 </tr>
11326 <tr class="entry_cont">
11327 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011328 <p>Defines sensor bit depth (10-14 bits is
11329expected)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011330 </td>
11331 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011332
11333
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011334 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11335 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011336
11337
11338
11339
11340
11341 <tr class="entry" id="static_android.sensor.baseGainFactor">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011342 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011343 android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011344 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011345 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011346 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011347
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011348 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011349
11350
11351 </td> <!-- entry_type -->
11352
11353 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011354 <p>Gain factor from electrons to raw units when
11355ISO=100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011356 </td>
11357
11358 <td class="entry_units">
11359 </td>
11360
11361 <td class="entry_range">
11362 </td>
11363
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011364 <td class="entry_tags">
11365 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011366 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011367 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011368 </ul>
11369 </td>
11370
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011371 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011372
11373
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011374 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11375 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011376
11377
11378 <tr class="entry" id="static_android.sensor.blackLevelPattern">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011379 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011380 android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011381 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011382 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011383 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011384 <span class="entry_type_container">x</span>
11385
11386 <span class="entry_type_array">
11387 4
11388 </span>
Ruben Brunk24bdaaf2014-01-31 14:11:20 -080011389 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011390 <div class="entry_type_notes">2x2 raw count block</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011391
11392
11393 </td> <!-- entry_type -->
11394
11395 <td class="entry_description">
Ruben Brunk24bdaaf2014-01-31 14:11:20 -080011396 <p>A fixed black level offset for each of the color filter arrangement
11397(CFA) mosaic channels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011398 </td>
11399
11400 <td class="entry_units">
11401 </td>
11402
11403 <td class="entry_range">
Ruben Brunk24bdaaf2014-01-31 14:11:20 -080011404 <p>&gt;= 0 for each.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011405 </td>
11406
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011407 <td class="entry_tags">
11408 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011409 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011410 </ul>
11411 </td>
11412
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011413 </tr>
11414 <tr class="entries_header">
11415 <th class="th_details" colspan="5">Details</th>
11416 </tr>
11417 <tr class="entry_cont">
11418 <td class="entry_details" colspan="5">
Ruben Brunk24bdaaf2014-01-31 14:11:20 -080011419 <p>This tag specifies the zero light value for each of the CFA mosaic
11420channels in the camera sensor.<wbr/></p>
11421<p>The values are given in row-column scan order,<wbr/> with the first value
11422corresponding to the element of the CFA in row=0,<wbr/> column=0.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011423 </td>
11424 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011425
11426
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011427 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11428 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011429
11430
11431 <tr class="entry" id="static_android.sensor.calibrationTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011432 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011433 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011434 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011435 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011436 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011437 <span class="entry_type_container">x</span>
11438
11439 <span class="entry_type_array">
11440 9
11441 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011442 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011443 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011444
11445
11446 </td> <!-- entry_type -->
11447
11448 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011449 <p>Per-device calibration on top of color space
11450transform 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011451 </td>
11452
11453 <td class="entry_units">
11454 </td>
11455
11456 <td class="entry_range">
11457 </td>
11458
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011459 <td class="entry_tags">
11460 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011461 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011462 </ul>
11463 </td>
11464
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011465 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011466
11467
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011468 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11469 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011470
11471
11472 <tr class="entry" id="static_android.sensor.calibrationTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011473 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011474 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011475 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011476 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011477 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011478 <span class="entry_type_container">x</span>
11479
11480 <span class="entry_type_array">
11481 9
11482 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011483 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011484 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011485
11486
11487 </td> <!-- entry_type -->
11488
11489 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011490 <p>Per-device calibration on top of color space
11491transform 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011492 </td>
11493
11494 <td class="entry_units">
11495 </td>
11496
11497 <td class="entry_range">
11498 </td>
11499
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011500 <td class="entry_tags">
11501 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011502 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011503 </ul>
11504 </td>
11505
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011506 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011507
11508
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011509 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11510 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011511
11512
11513 <tr class="entry" id="static_android.sensor.colorTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011514 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011515 android.<wbr/>sensor.<wbr/>color<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011516 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011517 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011518 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011519 <span class="entry_type_container">x</span>
11520
11521 <span class="entry_type_array">
11522 9
11523 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011524 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011525 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011526
11527
11528 </td> <!-- entry_type -->
11529
11530 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011531 <p>Linear mapping from XYZ (D50) color space to
11532reference linear sensor color,<wbr/> for first reference
11533illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011534 </td>
11535
11536 <td class="entry_units">
11537 </td>
11538
11539 <td class="entry_range">
11540 </td>
11541
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011542 <td class="entry_tags">
11543 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011544 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011545 </ul>
11546 </td>
11547
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011548 </tr>
11549 <tr class="entries_header">
11550 <th class="th_details" colspan="5">Details</th>
11551 </tr>
11552 <tr class="entry_cont">
11553 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011554 <p>Use as follows XYZ = inv(transform) * clip( (raw -
11555black level(raw) ) /<wbr/> ( white level - max black level) ).<wbr/>
11556At least in the simple case</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011557 </td>
11558 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011559
11560
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011561 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11562 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011563
11564
11565 <tr class="entry" id="static_android.sensor.colorTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011566 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011567 android.<wbr/>sensor.<wbr/>color<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011568 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011569 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011570 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011571 <span class="entry_type_container">x</span>
11572
11573 <span class="entry_type_array">
11574 9
11575 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011576 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011577 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011578
11579
11580 </td> <!-- entry_type -->
11581
11582 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011583 <p>Linear mapping from XYZ (D50) color space to
11584reference linear sensor color,<wbr/> for second reference
11585illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011586 </td>
11587
11588 <td class="entry_units">
11589 </td>
11590
11591 <td class="entry_range">
11592 </td>
11593
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011594 <td class="entry_tags">
11595 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011596 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011597 </ul>
11598 </td>
11599
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011600 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011601
11602
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011603 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11604 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011605
11606
11607 <tr class="entry" id="static_android.sensor.forwardMatrix1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011608 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011609 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011610 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011611 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011612 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011613 <span class="entry_type_container">x</span>
11614
11615 <span class="entry_type_array">
11616 9
11617 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011618 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011619 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011620
11621
11622 </td> <!-- entry_type -->
11623
11624 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011625 <p>Used by DNG for better WB
11626adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011627 </td>
11628
11629 <td class="entry_units">
11630 </td>
11631
11632 <td class="entry_range">
11633 </td>
11634
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011635 <td class="entry_tags">
11636 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011637 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011638 </ul>
11639 </td>
11640
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011641 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011642
11643
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011644 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11645 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011646
11647
11648 <tr class="entry" id="static_android.sensor.forwardMatrix2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011649 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011650 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011651 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011652 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011653 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011654 <span class="entry_type_container">x</span>
11655
11656 <span class="entry_type_array">
11657 9
11658 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011659 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011660 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011661
11662
11663 </td> <!-- entry_type -->
11664
11665 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011666 <p>Used by DNG for better WB
11667adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011668 </td>
11669
11670 <td class="entry_units">
11671 </td>
11672
11673 <td class="entry_range">
11674 </td>
11675
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011676 <td class="entry_tags">
11677 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011678 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011679 </ul>
11680 </td>
11681
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011682 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011683
11684
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011685 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11686 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011687
11688
11689 <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011690 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011691 android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011692 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011693 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011694 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011695
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011696 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011697
11698
11699 </td> <!-- entry_type -->
11700
11701 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011702 <p>Maximum sensitivity that is implemented
Zhijun Hebdc94c42014-01-21 18:28:30 -080011703purely through analog gain.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011704 </td>
11705
11706 <td class="entry_units">
11707 </td>
11708
11709 <td class="entry_range">
11710 </td>
11711
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011712 <td class="entry_tags">
11713 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011714 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011715 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011716 </ul>
11717 </td>
11718
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011719 </tr>
11720 <tr class="entries_header">
11721 <th class="th_details" colspan="5">Details</th>
11722 </tr>
11723 <tr class="entry_cont">
11724 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011725 <p>For <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> values less than or
Igor Murashkin0b080452013-12-27 15:30:25 -080011726equal to this,<wbr/> all applied gain must be analog.<wbr/> For
Zhijun Hebdc94c42014-01-21 18:28:30 -080011727values above this,<wbr/> the gain applied can be a mix of analog and
11728digital.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011729 </td>
11730 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011731
11732
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011733 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11734 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011735
11736
11737 <tr class="entry" id="static_android.sensor.noiseModelCoefficients">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011738 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011739 android.<wbr/>sensor.<wbr/>noise<wbr/>Model<wbr/>Coefficients
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011740 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011741 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011742 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011743 <span class="entry_type_container">x</span>
11744
11745 <span class="entry_type_array">
11746 2
11747 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011748 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011749 <div class="entry_type_notes">float constants A,<wbr/> B for the noise variance model</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011750
11751
11752 </td> <!-- entry_type -->
11753
11754 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011755 <p>Estimation of sensor noise
11756characteristics</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011757 </td>
11758
11759 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011760 var(raw pixel value) = electrons * (baseGainFactor
11761 * iso/<wbr/>100)^2 + A * (baseGainFactor * iso/<wbr/>100)^2 +
11762 B
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011763 </td>
11764
11765 <td class="entry_range">
11766 </td>
11767
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011768 <td class="entry_tags">
11769 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011770 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011771 </ul>
11772 </td>
11773
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011774 </tr>
11775 <tr class="entries_header">
11776 <th class="th_details" colspan="5">Details</th>
11777 </tr>
11778 <tr class="entry_cont">
11779 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011780 <p>A represents sensor read noise before analog
11781amplification; B represents noise from A/<wbr/>D conversion and
11782other circuits after amplification.<wbr/> Both noise sources
11783are assumed to be gaussian,<wbr/> independent,<wbr/> and not to vary
11784across the sensor</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011785 </td>
11786 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011787
11788
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011789 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11790 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011791
11792
11793 <tr class="entry" id="static_android.sensor.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011794 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011795 android.<wbr/>sensor.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011796 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011797 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011798 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011799
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011800 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011801
11802
11803 </td> <!-- entry_type -->
11804
11805 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011806 <p>Clockwise angle through which the output
Igor Murashkin8aa2a112013-12-09 12:06:17 -080011807image needs to be rotated to be upright on the device
Igor Murashkin0b080452013-12-27 15:30:25 -080011808screen in its native orientation.<wbr/> Also defines the
11809direction of rolling shutter readout,<wbr/> which is from top
11810to bottom in the sensor's coordinate system</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011811 </td>
11812
11813 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011814 degrees clockwise rotation,<wbr/> only multiples of
11815 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011816 </td>
11817
11818 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011819 <p>0,<wbr/>90,<wbr/>180,<wbr/>270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011820 </td>
11821
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011822 <td class="entry_tags">
11823 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011824 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011825 </ul>
11826 </td>
11827
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011828 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011829
11830
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011831 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11832 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011833
11834
11835 <tr class="entry" id="static_android.sensor.referenceIlluminant1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011836 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011837 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011838 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011839 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011840 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011841
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011842 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011843
11844 <ul class="entry_type_enum">
11845 <li>
11846 <span class="entry_type_enum_name">DAYLIGHT</span>
11847 <span class="entry_type_enum_value">1</span>
11848 </li>
11849 <li>
11850 <span class="entry_type_enum_name">FLUORESCENT</span>
11851 <span class="entry_type_enum_value">2</span>
11852 </li>
11853 <li>
11854 <span class="entry_type_enum_name">TUNGSTEN</span>
11855 <span class="entry_type_enum_value">3</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011856 <span class="entry_type_enum_notes"><p>Incandescent light</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011857 </li>
11858 <li>
11859 <span class="entry_type_enum_name">FLASH</span>
11860 <span class="entry_type_enum_value">4</span>
11861 </li>
11862 <li>
11863 <span class="entry_type_enum_name">FINE_WEATHER</span>
11864 <span class="entry_type_enum_value">9</span>
11865 </li>
11866 <li>
11867 <span class="entry_type_enum_name">CLOUDY_WEATHER</span>
11868 <span class="entry_type_enum_value">10</span>
11869 </li>
11870 <li>
11871 <span class="entry_type_enum_name">SHADE</span>
11872 <span class="entry_type_enum_value">11</span>
11873 </li>
11874 <li>
11875 <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span>
11876 <span class="entry_type_enum_value">12</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011877 <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011878 </li>
11879 <li>
11880 <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span>
11881 <span class="entry_type_enum_value">13</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011882 <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011883 </li>
11884 <li>
11885 <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span>
11886 <span class="entry_type_enum_value">14</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011887 <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011888 </li>
11889 <li>
11890 <span class="entry_type_enum_name">WHITE_FLUORESCENT</span>
11891 <span class="entry_type_enum_value">15</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011892 <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011893 </li>
11894 <li>
11895 <span class="entry_type_enum_name">STANDARD_A</span>
11896 <span class="entry_type_enum_value">17</span>
11897 </li>
11898 <li>
11899 <span class="entry_type_enum_name">STANDARD_B</span>
11900 <span class="entry_type_enum_value">18</span>
11901 </li>
11902 <li>
11903 <span class="entry_type_enum_name">STANDARD_C</span>
11904 <span class="entry_type_enum_value">19</span>
11905 </li>
11906 <li>
11907 <span class="entry_type_enum_name">D55</span>
11908 <span class="entry_type_enum_value">20</span>
11909 </li>
11910 <li>
11911 <span class="entry_type_enum_name">D65</span>
11912 <span class="entry_type_enum_value">21</span>
11913 </li>
11914 <li>
11915 <span class="entry_type_enum_name">D75</span>
11916 <span class="entry_type_enum_value">22</span>
11917 </li>
11918 <li>
11919 <span class="entry_type_enum_name">D50</span>
11920 <span class="entry_type_enum_value">23</span>
11921 </li>
11922 <li>
11923 <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span>
11924 <span class="entry_type_enum_value">24</span>
11925 </li>
11926 </ul>
11927
11928 </td> <!-- entry_type -->
11929
11930 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011931 <p>Light source used to define transform
119321</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011933 </td>
11934
11935 <td class="entry_units">
11936 </td>
11937
11938 <td class="entry_range">
11939 </td>
11940
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011941 <td class="entry_tags">
11942 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011943 <li><a href="#tag_DNG">DNG</a></li>
11944 <li><a href="#tag_EXIF">EXIF</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011945 </ul>
11946 </td>
11947
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011948 </tr>
11949 <tr class="entries_header">
11950 <th class="th_details" colspan="5">Details</th>
11951 </tr>
11952 <tr class="entry_cont">
11953 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011954 <p>[EXIF LightSource tag] Must all these be
11955supported? Need CCT for each!</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011956 </td>
11957 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011958
11959
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011960 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11961 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011962
11963
11964 <tr class="entry" id="static_android.sensor.referenceIlluminant2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011965 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011966 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011967 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011968 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011969 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011970
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011971 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011972
11973
11974 </td> <!-- entry_type -->
11975
11976 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011977 <p>Light source used to define transform
119782</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011979 </td>
11980
11981 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011982 Same as illuminant 1
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011983 </td>
11984
11985 <td class="entry_range">
11986 </td>
11987
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011988 <td class="entry_tags">
11989 </td>
11990
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011991 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011992
11993
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011994 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11995 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011996
Igor Murashkina46e02f2014-01-09 17:43:38 -080011997
11998 <tr class="entry" id="static_android.sensor.availableTestPatternModes">
11999 <td class="entry_name" rowspan="1">
12000 android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes
12001 </td>
12002 <td class="entry_type">
12003 <span class="entry_type_name">byte</span>
12004
12005 <span class="entry_type_visibility"> [public]</span>
12006
12007
12008 </td> <!-- entry_type -->
12009
12010 <td class="entry_description">
12011 <p>Optional.<wbr/> Defaults to [OFF].<wbr/> Lists the supported test
12012pattern modes for android.<wbr/>test.<wbr/>pattern<wbr/>Mode.<wbr/></p>
12013 </td>
12014
12015 <td class="entry_units">
12016 </td>
12017
12018 <td class="entry_range">
12019 <p>Must include OFF.<wbr/> All custom modes must be &gt;= CUSTOM1</p>
12020 </td>
12021
12022 <td class="entry_tags">
12023 </td>
12024
12025 </tr>
12026
12027
12028 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12029 <!-- end of entry -->
12030
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012031
12032
12033 <!-- end of kind -->
12034 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012035 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012036
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012037 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012038 <tr>
12039 <th class="th_name">Property Name</th>
12040 <th class="th_type">Type</th>
12041 <th class="th_description">Description</th>
12042 <th class="th_units">Units</th>
12043 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012044 <th class="th_tags">Tags</th>
12045 </tr>
12046 </thead>
12047
12048 <tbody>
12049
12050
12051
12052
12053
12054
12055
12056
12057
12058
12059 <tr class="entry" id="dynamic_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012060 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012061 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012062 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012063 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012064 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012065
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012066 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012067
12068
12069 </td> <!-- entry_type -->
12070
12071 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012072 <p>Duration each pixel is exposed to
12073light.<wbr/></p>
12074<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
12075duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012076 </td>
12077
12078 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012079 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012080 </td>
12081
12082 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012083 <p><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012084 </td>
12085
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012086 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012087 <ul class="entry_tags">
12088 <li><a href="#tag_V1">V1</a></li>
12089 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012090 </td>
12091
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012092 </tr>
12093 <tr class="entries_header">
12094 <th class="th_details" colspan="5">Details</th>
12095 </tr>
12096 <tr class="entry_cont">
12097 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012098 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012099 </td>
12100 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012101
12102
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012103 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12104 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012105
12106
12107 <tr class="entry" id="dynamic_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012108 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012109 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012110 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012111 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012112 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012113
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012114 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012115
12116
12117 </td> <!-- entry_type -->
12118
12119 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012120 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012121start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012122 </td>
12123
12124 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012125 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012126 </td>
12127
12128 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012129 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
12130android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
12131is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012132 </td>
12133
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012134 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012135 <ul class="entry_tags">
12136 <li><a href="#tag_V1">V1</a></li>
12137 <li><a href="#tag_BC">BC</a></li>
12138 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012139 </td>
12140
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012141 </tr>
12142 <tr class="entries_header">
12143 <th class="th_details" colspan="5">Details</th>
12144 </tr>
12145 <tr class="entry_cont">
12146 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012147 <p>The maximum frame rate that can be supported by a camera subsystem is
12148a function of many factors:</p>
12149<ul>
12150<li>Requested resolutions of output image streams</li>
12151<li>Availability of binning /<wbr/> skipping modes on the imager</li>
12152<li>The bandwidth of the imager interface</li>
12153<li>The bandwidth of the various ISP processing blocks</li>
12154</ul>
12155<p>Since these factors can vary greatly between different ISPs and
12156sensors,<wbr/> the camera abstraction tries to represent the bandwidth
12157restrictions with as simple a model as possible.<wbr/></p>
12158<p>The model presented has the following characteristics:</p>
12159<ul>
12160<li>The image sensor is always configured to output the smallest
12161resolution possible given the application's requested output stream
12162sizes.<wbr/> The smallest resolution is defined as being at least as large
12163as the largest requested output stream size; the camera pipeline must
12164never digitally upsample sensor data when the crop region covers the
12165whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
12166resolutions are configured,<wbr/> the sensor can provide a higher frame
12167rate.<wbr/></li>
12168<li>Since any request may use any or all the currently configured
12169output streams,<wbr/> the sensor and ISP must be configured to support
12170scaling a single capture to all the streams at the same time.<wbr/> This
12171means the camera pipeline must be ready to produce the largest
12172requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
12173frame rate of a given configured stream set is governed only by the
12174largest requested stream resolution.<wbr/></li>
12175<li>Using more than one output stream in a request does not affect the
12176frame duration.<wbr/></li>
12177<li>JPEG streams act like processed YUV streams in requests for which
12178they are not included; in requests in which they are directly
12179referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
12180JPEG stream requires the underlying YUV data to always be ready for
12181use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
12182frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
12183<li>The JPEG processor can run concurrently to the rest of the camera
12184pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
12185</ul>
12186<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
12187is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
12188These are used to determine the maximum frame rate /<wbr/> minimum frame
12189duration that is possible for a given stream configuration.<wbr/></p>
12190<p>Specifically,<wbr/> the application can use the following rules to
12191determine the minimum frame duration it can request from the HAL
12192device:</p>
12193<ol>
12194<li>Given the application's currently configured set of output
12195streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
12196<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
12197<code>SP</code>.<wbr/></li>
12198<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
12199count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
12200<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
12201<li>If <code>RJ</code> is greater than <code>RP</code>,<wbr/> set <code>RP</code> equal to <code>RJ</code>.<wbr/> If there is
12202no exact match for <code>RP == RJ</code> (in particular there isn't an available
12203processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
12204to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
12205there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
12206the processed resolution closest to <code>RJ</code>.<wbr/></li>
12207<li>If <code>RP</code> is greater than <code>RR</code>,<wbr/> set <code>RR</code> equal to <code>RP</code>.<wbr/> If there is
12208no exact match for <code>RR == RP</code> (in particular there isn't an available
12209raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
12210or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
12211there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
12212the raw resolution closest to <code>RP</code>.<wbr/></li>
12213<li>Look up the matching minimum frame durations in the property lists
12214<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
12215<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
12216<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
12217minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
12218<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
12219supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
12220<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
12221supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
12222<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
12223the application,<wbr/> then the HAL will have to delay JPEG-using requests
12224whenever the JPEG encoder is still busy processing an older capture.<wbr/>
12225This will happen whenever a JPEG-using request starts capture less
12226than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
12227supported frame duration will vary between the values calculated in
12228#6 and #7.<wbr/></li>
12229</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012230 </td>
12231 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012232
12233
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012234 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12235 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012236
12237
12238 <tr class="entry" id="dynamic_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012239 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012240 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012241 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012242 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012243 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012244
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012245 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012246
12247
12248 </td> <!-- entry_type -->
12249
12250 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012251 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012252implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080012253below 'maximum analog sensitivity'.<wbr/></p>
12254<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
12255gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012256 </td>
12257
12258 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012259 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012260 </td>
12261
12262 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012263 <p><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012264 </td>
12265
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012266 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012267 <ul class="entry_tags">
12268 <li><a href="#tag_V1">V1</a></li>
12269 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012270 </td>
12271
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012272 </tr>
12273 <tr class="entries_header">
12274 <th class="th_details" colspan="5">Details</th>
12275 </tr>
12276 <tr class="entry_cont">
12277 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012278 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012279 </td>
12280 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012281
12282
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012283 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12284 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012285
12286
12287 <tr class="entry" id="dynamic_android.sensor.timestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012288 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012289 android.<wbr/>sensor.<wbr/>timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012290 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012291 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012292 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012293
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012294 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012295
12296
12297 </td> <!-- entry_type -->
12298
12299 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012300 <p>Time at start of exposure of first
12301row</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012302 </td>
12303
12304 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012305 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012306 </td>
12307
12308 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012309 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012310 </td>
12311
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012312 <td class="entry_tags">
12313 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012314 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012315 </ul>
12316 </td>
12317
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012318 </tr>
12319 <tr class="entries_header">
12320 <th class="th_details" colspan="5">Details</th>
12321 </tr>
12322 <tr class="entry_cont">
12323 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012324 <p>Monotonic,<wbr/> should be synced to other timestamps in
12325system</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012326 </td>
12327 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012328
12329
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012330 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12331 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012332
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012333
12334 <tr class="entry" id="dynamic_android.sensor.temperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012335 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012336 android.<wbr/>sensor.<wbr/>temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012337 </td>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012338 <td class="entry_type">
12339 <span class="entry_type_name">float</span>
12340
12341 <span class="entry_type_visibility"> [public]</span>
12342
12343
12344 </td> <!-- entry_type -->
12345
12346 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012347 <p>The temperature of the sensor,<wbr/> sampled at the time
12348exposure began for this frame.<wbr/></p>
12349<p>The thermal diode being queried should be inside the sensor PCB,<wbr/> or
12350somewhere close to it.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012351 </td>
12352
12353 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012354 celsius
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012355 </td>
12356
12357 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012358 <p>Optional.<wbr/> This value is missing if no temperature is available.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012359 </td>
12360
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012361 <td class="entry_tags">
Alex Rayef40ad62013-10-01 17:52:33 -070012362 <ul class="entry_tags">
12363 <li><a href="#tag_FULL">FULL</a></li>
12364 </ul>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012365 </td>
12366
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012367 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012368
12369
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012370 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12371 <!-- end of entry -->
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012372
Igor Murashkina46e02f2014-01-09 17:43:38 -080012373
12374 <tr class="entry" id="dynamic_android.sensor.testPatternMode">
12375 <td class="entry_name" rowspan="5">
12376 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
12377 </td>
12378 <td class="entry_type">
12379 <span class="entry_type_name entry_type_name_enum">int32</span>
12380
12381 <span class="entry_type_visibility"> [public]</span>
12382
12383 <ul class="entry_type_enum">
12384 <li>
12385 <span class="entry_type_enum_name">OFF</span>
12386 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
12387device returns captures from the image sensor.<wbr/></p></span>
12388 </li>
12389 <li>
12390 <span class="entry_type_enum_name">SOLID_COLOR</span>
12391 <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
12392respective color channel provided in
12393<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
12394<p>For example:</p>
12395<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12396</code></pre>
12397<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
12398<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12399</code></pre>
12400<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
12401are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
12402 </li>
12403 <li>
12404 <span class="entry_type_enum_name">COLOR_BARS</span>
12405 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
12406<p>The vertical bars (left-to-right) are as follows:</p>
12407<ul>
12408<li>100% white</li>
12409<li>yellow</li>
12410<li>cyan</li>
12411<li>green</li>
12412<li>magenta</li>
12413<li>red</li>
12414<li>blue</li>
12415<li>black</li>
12416</ul>
12417<p>In general the image would look like the following:</p>
12418<pre><code>W Y C G M R B K
12419W Y C G M R B K
12420W Y C G M R B K
12421W Y C G M R B K
12422W Y C G M R B K
12423.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12424.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12425.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12426
12427(B = Blue,<wbr/> K = Black)
12428</code></pre>
12429<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
12430When this is not possible,<wbr/> the bar size should be rounded
12431down to the nearest integer and the pattern can repeat
12432on the right side.<wbr/></p>
12433<p>Each bar's height must always take up the full sensor
12434pixel array height.<wbr/></p>
12435<p>Each pixel in this test pattern must be set to either
124360% intensity or 100% intensity.<wbr/></p></span>
12437 </li>
12438 <li>
12439 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
12440 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
12441each bar should start at its specified color at the top,<wbr/>
12442and fade to gray at the bottom.<wbr/></p>
12443<p>Furthermore each bar is further subdivided into a left and
12444right half.<wbr/> The left half should have a smooth gradient,<wbr/>
12445and the right half should have a quantized gradient.<wbr/></p>
12446<p>In particular,<wbr/> the right half's should consist of blocks of the
12447same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
12448<p>The least significant bits in the quantized gradient should
12449be copied from the most significant bits of the smooth gradient.<wbr/></p>
12450<p>The height of each bar should always be a multiple of 128.<wbr/>
12451When this is not the case,<wbr/> the pattern should repeat at the bottom
12452of the image.<wbr/></p></span>
12453 </li>
12454 <li>
12455 <span class="entry_type_enum_name">PN9</span>
12456 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
12457generated from a PN9 512-bit sequence (typically implemented
12458in hardware with a linear feedback shift register).<wbr/></p>
12459<p>The generator should be reset at the beginning of each frame,<wbr/>
12460and thus each subsequent raw frame with this test pattern should
12461be exactly the same as the last.<wbr/></p></span>
12462 </li>
12463 <li>
12464 <span class="entry_type_enum_name">CUSTOM1</span>
12465 <span class="entry_type_enum_value">256</span>
12466 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
12467available only on this camera device are at least this numeric
12468value.<wbr/></p>
12469<p>All of the custom test patterns will be static
12470(that is the raw image must not vary from frame to frame).<wbr/></p></span>
12471 </li>
12472 </ul>
12473
12474 </td> <!-- entry_type -->
12475
12476 <td class="entry_description">
12477 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
12478doing a real exposure from the camera.<wbr/></p>
12479 </td>
12480
12481 <td class="entry_units">
12482 </td>
12483
12484 <td class="entry_range">
12485 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
12486<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
12487 </td>
12488
12489 <td class="entry_tags">
12490 </td>
12491
12492 </tr>
12493 <tr class="entries_header">
12494 <th class="th_details" colspan="5">Details</th>
12495 </tr>
12496 <tr class="entry_cont">
12497 <td class="entry_details" colspan="5">
12498 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
12499by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
12500work as normal.<wbr/></p>
12501<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
12502occur (and that the test pattern remain unmodified,<wbr/> since the flash
12503would not actually affect it).<wbr/></p>
12504 </td>
12505 </tr>
12506
12507 <tr class="entries_header">
12508 <th class="th_details" colspan="5">HAL Implementation Details</th>
12509 </tr>
12510 <tr class="entry_cont">
12511 <td class="entry_details" colspan="5">
12512 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
12513<p>The HAL may choose to substitute test patterns from the sensor
12514with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
12515indistinguishable to the ISP whether the data came from the
12516sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
12517 </td>
12518 </tr>
12519
12520 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12521 <!-- end of entry -->
12522
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012523
12524
12525 <!-- end of kind -->
12526 </tbody>
12527
12528 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012529 <tr><td colspan="6" id="section_shading" class="section">shading</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012530
12531
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012532 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012533
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012534 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012535 <tr>
12536 <th class="th_name">Property Name</th>
12537 <th class="th_type">Type</th>
12538 <th class="th_description">Description</th>
12539 <th class="th_units">Units</th>
12540 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012541 <th class="th_tags">Tags</th>
12542 </tr>
12543 </thead>
12544
12545 <tbody>
12546
12547
12548
12549
12550
12551
12552
12553
12554
12555
12556 <tr class="entry" id="controls_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012557 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012558 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012559 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012560 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012561 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012562
Zhijun He2f86a212014-01-15 10:34:02 -080012563 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012564
12565 <ul class="entry_type_enum">
12566 <li>
12567 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012568 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012569 </li>
12570 <li>
12571 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012572 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor raw output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012573 </li>
12574 <li>
12575 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012576 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012577 </li>
12578 </ul>
12579
12580 </td> <!-- entry_type -->
12581
12582 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012583 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012584to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012585 </td>
12586
12587 <td class="entry_units">
12588 </td>
12589
12590 <td class="entry_range">
12591 </td>
12592
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012593 <td class="entry_tags">
12594 </td>
12595
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012596 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012597 <tr class="entries_header">
12598 <th class="th_details" colspan="5">Details</th>
12599 </tr>
12600 <tr class="entry_cont">
12601 <td class="entry_details" colspan="5">
12602 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12603camera device,<wbr/> and an identity lens shading map data will be provided
12604if <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
12605shading 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/>
12606the 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
12607shown below:</p>
12608<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/>
12609 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/>
12610 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/>
12611 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/>
12612 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/>
12613 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 ]
12614</code></pre>
12615<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12616camera device.<wbr/> Applications can request lens shading map data by setting
12617<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
12618lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12619by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12620 </td>
12621 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012622
12623
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012624 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12625 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012626
12627
12628 <tr class="entry" id="controls_android.shading.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012629 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012630 android.<wbr/>shading.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012631 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012632 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012633 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012634
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012635 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012636
12637
12638 </td> <!-- entry_type -->
12639
12640 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012641 <p>Control the amount of shading correction
12642applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012643 </td>
12644
12645 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012646 unitless: 1-10; 10 is full shading
12647 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012648 </td>
12649
12650 <td class="entry_range">
12651 </td>
12652
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012653 <td class="entry_tags">
12654 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012655 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012656 </ul>
12657 </td>
12658
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012659 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012660
12661
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012662 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12663 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012664
12665
12666
12667 <!-- end of kind -->
12668 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012669 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012670
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012671 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012672 <tr>
12673 <th class="th_name">Property Name</th>
12674 <th class="th_type">Type</th>
12675 <th class="th_description">Description</th>
12676 <th class="th_units">Units</th>
12677 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012678 <th class="th_tags">Tags</th>
12679 </tr>
12680 </thead>
12681
12682 <tbody>
12683
12684
12685
12686
12687
12688
12689
12690
12691
12692
12693 <tr class="entry" id="dynamic_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012694 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012695 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012696 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012697 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012698 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012699
Zhijun He2f86a212014-01-15 10:34:02 -080012700 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012701
12702 <ul class="entry_type_enum">
12703 <li>
12704 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012705 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012706 </li>
12707 <li>
12708 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012709 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor raw output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012710 </li>
12711 <li>
12712 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012713 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012714 </li>
12715 </ul>
12716
12717 </td> <!-- entry_type -->
12718
12719 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012720 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012721to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012722 </td>
12723
12724 <td class="entry_units">
12725 </td>
12726
12727 <td class="entry_range">
12728 </td>
12729
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012730 <td class="entry_tags">
12731 </td>
12732
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012733 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012734 <tr class="entries_header">
12735 <th class="th_details" colspan="5">Details</th>
12736 </tr>
12737 <tr class="entry_cont">
12738 <td class="entry_details" colspan="5">
12739 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12740camera device,<wbr/> and an identity lens shading map data will be provided
12741if <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
12742shading 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/>
12743the 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
12744shown below:</p>
12745<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/>
12746 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/>
12747 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/>
12748 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/>
12749 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/>
12750 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 ]
12751</code></pre>
12752<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12753camera device.<wbr/> Applications can request lens shading map data by setting
12754<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
12755lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12756by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12757 </td>
12758 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012759
12760
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012761 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12762 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012763
12764
12765
12766 <!-- end of kind -->
12767 </tbody>
12768
12769 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012770 <tr><td colspan="6" id="section_statistics" class="section">statistics</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012771
12772
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012773 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012774
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012775 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012776 <tr>
12777 <th class="th_name">Property Name</th>
12778 <th class="th_type">Type</th>
12779 <th class="th_description">Description</th>
12780 <th class="th_units">Units</th>
12781 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012782 <th class="th_tags">Tags</th>
12783 </tr>
12784 </thead>
12785
12786 <tbody>
12787
12788
12789
12790
12791
12792
12793
12794
12795
12796
12797 <tr class="entry" id="controls_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012798 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012799 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012800 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012801 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012802 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012803
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012804 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012805
12806 <ul class="entry_type_enum">
12807 <li>
12808 <span class="entry_type_enum_name">OFF</span>
12809 </li>
12810 <li>
12811 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012812 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
12813only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012814 </li>
12815 <li>
12816 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012817 <span class="entry_type_enum_notes"><p>Optional Return all face
12818metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012819 </li>
12820 </ul>
12821
12822 </td> <!-- entry_type -->
12823
12824 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012825 <p>State of the face detector
12826unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012827 </td>
12828
12829 <td class="entry_units">
12830 </td>
12831
12832 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012833 <p><a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012834 </td>
12835
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012836 <td class="entry_tags">
12837 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012838 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012839 </ul>
12840 </td>
12841
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012842 </tr>
12843 <tr class="entries_header">
12844 <th class="th_details" colspan="5">Details</th>
12845 </tr>
12846 <tr class="entry_cont">
12847 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012848 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012849should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080012850fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012851<a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a>.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012852 </td>
12853 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012854
12855
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012856 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12857 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012858
12859
12860 <tr class="entry" id="controls_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012861 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012862 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012863 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012864 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012865 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012866
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012867 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012868
12869 <ul class="entry_type_enum">
12870 <li>
12871 <span class="entry_type_enum_name">OFF</span>
12872 </li>
12873 <li>
12874 <span class="entry_type_enum_name">ON</span>
12875 </li>
12876 </ul>
12877
12878 </td> <!-- entry_type -->
12879
12880 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012881 <p>Operating mode for histogram
12882generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012883 </td>
12884
12885 <td class="entry_units">
12886 </td>
12887
12888 <td class="entry_range">
12889 </td>
12890
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012891 <td class="entry_tags">
12892 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012893 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012894 </ul>
12895 </td>
12896
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012897 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012898
12899
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012900 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12901 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012902
12903
12904 <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012905 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012906 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012907 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012908 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012909 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012910
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012911 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012912
12913 <ul class="entry_type_enum">
12914 <li>
12915 <span class="entry_type_enum_name">OFF</span>
12916 </li>
12917 <li>
12918 <span class="entry_type_enum_name">ON</span>
12919 </li>
12920 </ul>
12921
12922 </td> <!-- entry_type -->
12923
12924 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012925 <p>Operating mode for sharpness map
12926generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012927 </td>
12928
12929 <td class="entry_units">
12930 </td>
12931
12932 <td class="entry_range">
12933 </td>
12934
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012935 <td class="entry_tags">
12936 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012937 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012938 </ul>
12939 </td>
12940
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012941 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012942
12943
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012944 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12945 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012946
Zhijun He69fc0ea2013-07-17 09:42:58 -070012947
12948 <tr class="entry" id="controls_android.statistics.lensShadingMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012949 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012950 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012951 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012952 <td class="entry_type">
12953 <span class="entry_type_name entry_type_name_enum">byte</span>
12954
12955 <span class="entry_type_visibility"> [public]</span>
12956
12957 <ul class="entry_type_enum">
12958 <li>
12959 <span class="entry_type_enum_name">OFF</span>
12960 </li>
12961 <li>
12962 <span class="entry_type_enum_name">ON</span>
12963 </li>
12964 </ul>
12965
12966 </td> <!-- entry_type -->
12967
12968 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012969 <p>Whether the HAL needs to output the lens
12970shading map in output result metadata</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012971 </td>
12972
12973 <td class="entry_units">
12974 </td>
12975
12976 <td class="entry_range">
12977 </td>
12978
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012979 <td class="entry_tags">
12980 </td>
12981
12982 </tr>
12983 <tr class="entries_header">
12984 <th class="th_details" colspan="5">Details</th>
12985 </tr>
12986 <tr class="entry_cont">
12987 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012988 <p>When set to ON,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012989<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> must be provided in
Igor Murashkin0b080452013-12-27 15:30:25 -080012990the output result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012991 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012992 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012993
12994
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012995 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12996 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070012997
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012998
12999
13000 <!-- end of kind -->
13001 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013002 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013003
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013004 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013005 <tr>
13006 <th class="th_name">Property Name</th>
13007 <th class="th_type">Type</th>
13008 <th class="th_description">Description</th>
13009 <th class="th_units">Units</th>
13010 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013011 <th class="th_tags">Tags</th>
13012 </tr>
13013 </thead>
13014
13015 <tbody>
13016
13017
13018
13019
13020
13021
13022
13023
13024
13025
13026
13027
13028 <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013029 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013030 android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013031 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013032 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013033 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013034 <span class="entry_type_container">x</span>
13035
13036 <span class="entry_type_array">
13037 n
13038 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013039 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013040 <div class="entry_type_notes">List of enums from android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013041
13042
13043 </td> <!-- entry_type -->
13044
13045 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013046 <p>Which face detection modes are available,<wbr/>
13047if any</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013048 </td>
13049
13050 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080013051 List of enum:
Zhijun He69fc0ea2013-07-17 09:42:58 -070013052 OFF
13053 SIMPLE
Igor Murashkin0b080452013-12-27 15:30:25 -080013054 FULL
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013055 </td>
13056
13057 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013058 </td>
13059
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013060 <td class="entry_tags">
13061 </td>
13062
13063 </tr>
13064 <tr class="entries_header">
13065 <th class="th_details" colspan="5">Details</th>
13066 </tr>
13067 <tr class="entry_cont">
13068 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013069 <p>OFF means face detection is disabled,<wbr/> it must
13070be included in the list.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013071<p>SIMPLE means the device supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013072<a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
13073<a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a> outputs.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013074<p>FULL means the device additionally supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013075<a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a> and
13076<a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a> outputs.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013077 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013078 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013079
13080
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013081 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13082 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013083
13084
13085 <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013086 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013087 android.<wbr/>statistics.<wbr/>info.<wbr/>histogram<wbr/>Bucket<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013088 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013089 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013090 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013091
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013092 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013093
13094
13095 </td> <!-- entry_type -->
13096
13097 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013098 <p>Number of histogram buckets
13099supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013100 </td>
13101
13102 <td class="entry_units">
13103 </td>
13104
13105 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080013106 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013107 </td>
13108
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013109 <td class="entry_tags">
13110 </td>
13111
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013112 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013113
13114
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013115 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13116 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013117
13118
13119 <tr class="entry" id="static_android.statistics.info.maxFaceCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013120 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013121 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013122 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013123 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013124 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013125
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013126 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013127
13128
13129 </td> <!-- entry_type -->
13130
13131 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013132 <p>Maximum number of simultaneously detectable
13133faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013134 </td>
13135
13136 <td class="entry_units">
13137 </td>
13138
13139 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080013140 <p>&gt;= 4 if availableFaceDetectionModes lists
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013141modes besides OFF,<wbr/> otherwise 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013142 </td>
13143
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013144 <td class="entry_tags">
13145 </td>
13146
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013147 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013148
13149
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013150 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13151 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013152
13153
13154 <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013155 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013156 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Histogram<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013157 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013158 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013159 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013160
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013161 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013162
13163
13164 </td> <!-- entry_type -->
13165
13166 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013167 <p>Maximum value possible for a histogram
13168bucket</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013169 </td>
13170
13171 <td class="entry_units">
13172 </td>
13173
13174 <td class="entry_range">
13175 </td>
13176
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013177 <td class="entry_tags">
13178 </td>
13179
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013180 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013181
13182
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013183 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13184 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013185
13186
13187 <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013188 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013189 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Sharpness<wbr/>Map<wbr/>Value
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013190 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013191 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013192 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013193
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013194 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013195
13196
13197 </td> <!-- entry_type -->
13198
13199 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013200 <p>Maximum value possible for a sharpness map
13201region.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013202 </td>
13203
13204 <td class="entry_units">
13205 </td>
13206
13207 <td class="entry_range">
13208 </td>
13209
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013210 <td class="entry_tags">
13211 </td>
13212
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013213 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013214
13215
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013216 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13217 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013218
13219
13220 <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013221 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013222 android.<wbr/>statistics.<wbr/>info.<wbr/>sharpness<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013223 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013224 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013225 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013226 <span class="entry_type_container">x</span>
13227
13228 <span class="entry_type_array">
13229 2
13230 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013231 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013232 <div class="entry_type_notes">width x height</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013233
13234
13235 </td> <!-- entry_type -->
13236
13237 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013238 <p>Dimensions of the sharpness
13239map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013240 </td>
13241
13242 <td class="entry_units">
13243 </td>
13244
13245 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013246 <p>Must be at least 32 x 32</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013247 </td>
13248
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013249 <td class="entry_tags">
13250 </td>
13251
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013252 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013253
13254
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013255 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13256 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013257
13258
13259
13260
13261
13262
13263 <!-- end of kind -->
13264 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013265 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013266
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013267 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013268 <tr>
13269 <th class="th_name">Property Name</th>
13270 <th class="th_type">Type</th>
13271 <th class="th_description">Description</th>
13272 <th class="th_units">Units</th>
13273 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013274 <th class="th_tags">Tags</th>
13275 </tr>
13276 </thead>
13277
13278 <tbody>
13279
13280
13281
13282
13283
13284
13285
13286
13287
13288
13289 <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013290 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013291 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013292 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013293 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013294 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013295
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013296 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013297
13298 <ul class="entry_type_enum">
13299 <li>
13300 <span class="entry_type_enum_name">OFF</span>
13301 </li>
13302 <li>
13303 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013304 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
13305only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013306 </li>
13307 <li>
13308 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013309 <span class="entry_type_enum_notes"><p>Optional Return all face
13310metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013311 </li>
13312 </ul>
13313
13314 </td> <!-- entry_type -->
13315
13316 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013317 <p>State of the face detector
13318unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013319 </td>
13320
13321 <td class="entry_units">
13322 </td>
13323
13324 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013325 <p><a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013326 </td>
13327
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013328 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013329 <ul class="entry_tags">
13330 <li><a href="#tag_BC">BC</a></li>
13331 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013332 </td>
13333
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013334 </tr>
13335 <tr class="entries_header">
13336 <th class="th_details" colspan="5">Details</th>
13337 </tr>
13338 <tr class="entry_cont">
13339 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013340 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013341should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080013342fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013343<a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a>.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013344 </td>
13345 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013346
13347
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013348 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13349 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013350
13351
13352 <tr class="entry" id="dynamic_android.statistics.faceIds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013353 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013354 android.<wbr/>statistics.<wbr/>face<wbr/>Ids
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013355 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013356 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013357 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013358 <span class="entry_type_container">x</span>
13359
13360 <span class="entry_type_array">
13361 n
13362 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013363 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013364
13365
13366 </td> <!-- entry_type -->
13367
13368 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013369 <p>List of unique IDs for detected
13370faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013371 </td>
13372
13373 <td class="entry_units">
13374 </td>
13375
13376 <td class="entry_range">
13377 </td>
13378
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013379 <td class="entry_tags">
13380 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013381 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013382 </ul>
13383 </td>
13384
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013385 </tr>
13386 <tr class="entries_header">
13387 <th class="th_details" colspan="5">Details</th>
13388 </tr>
13389 <tr class="entry_cont">
13390 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013391 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013392 </td>
13393 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013394
13395
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013396 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13397 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013398
13399
13400 <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013401 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013402 android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013403 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013404 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013405 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013406 <span class="entry_type_container">x</span>
13407
13408 <span class="entry_type_array">
13409 n x 6
13410 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013411 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013412 <div class="entry_type_notes">(leftEyeX,<wbr/> leftEyeY,<wbr/> rightEyeX,<wbr/> rightEyeY,<wbr/> mouthX,<wbr/> mouthY)</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013413
13414
13415 </td> <!-- entry_type -->
13416
13417 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013418 <p>List of landmarks for detected
13419faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013420 </td>
13421
13422 <td class="entry_units">
13423 </td>
13424
13425 <td class="entry_range">
13426 </td>
13427
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013428 <td class="entry_tags">
13429 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013430 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013431 </ul>
13432 </td>
13433
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013434 </tr>
13435 <tr class="entries_header">
13436 <th class="th_details" colspan="5">Details</th>
13437 </tr>
13438 <tr class="entry_cont">
13439 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013440 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013441 </td>
13442 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013443
13444
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013445 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13446 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013447
13448
13449 <tr class="entry" id="dynamic_android.statistics.faceRectangles">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013450 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013451 android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013452 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013453 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013454 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013455 <span class="entry_type_container">x</span>
13456
13457 <span class="entry_type_array">
13458 n x 4
13459 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013460 <span class="entry_type_visibility"> [hidden as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013461 <div class="entry_type_notes">(xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax).<wbr/> (0,<wbr/>0) is top-left of active pixel area</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013462
13463
13464 </td> <!-- entry_type -->
13465
13466 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013467 <p>List of the bounding rectangles for detected
13468faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013469 </td>
13470
13471 <td class="entry_units">
13472 </td>
13473
13474 <td class="entry_range">
13475 </td>
13476
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013477 <td class="entry_tags">
13478 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013479 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013480 </ul>
13481 </td>
13482
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013483 </tr>
13484 <tr class="entries_header">
13485 <th class="th_details" colspan="5">Details</th>
13486 </tr>
13487 <tr class="entry_cont">
13488 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013489 <p>Only available if faceDetectMode != OFF</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013490 </td>
13491 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013492
13493
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013494 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13495 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013496
13497
13498 <tr class="entry" id="dynamic_android.statistics.faceScores">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013499 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013500 android.<wbr/>statistics.<wbr/>face<wbr/>Scores
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013501 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013502 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013503 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013504 <span class="entry_type_container">x</span>
13505
13506 <span class="entry_type_array">
13507 n
13508 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013509 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013510
13511
13512 </td> <!-- entry_type -->
13513
13514 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013515 <p>List of the face confidence scores for
13516detected faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013517 </td>
13518
13519 <td class="entry_units">
13520 </td>
13521
13522 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013523 <p>1-100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013524 </td>
13525
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013526 <td class="entry_tags">
13527 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013528 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013529 </ul>
13530 </td>
13531
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013532 </tr>
13533 <tr class="entries_header">
13534 <th class="th_details" colspan="5">Details</th>
13535 </tr>
13536 <tr class="entry_cont">
13537 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013538 <p>Only available if faceDetectMode != OFF.<wbr/> The value should be
13539meaningful (for example,<wbr/> setting 100 at all times is illegal).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013540 </td>
13541 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013542
13543
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013544 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13545 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013546
13547
13548 <tr class="entry" id="dynamic_android.statistics.histogram">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013549 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013550 android.<wbr/>statistics.<wbr/>histogram
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013551 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013552 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013553 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013554 <span class="entry_type_container">x</span>
13555
13556 <span class="entry_type_array">
13557 n x 3
13558 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013559 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013560 <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>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013561
13562
13563 </td> <!-- entry_type -->
13564
13565 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013566 <p>A 3-channel histogram based on the raw
13567sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013568 </td>
13569
13570 <td class="entry_units">
13571 </td>
13572
13573 <td class="entry_range">
13574 </td>
13575
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013576 <td class="entry_tags">
13577 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013578 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013579 </ul>
13580 </td>
13581
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013582 </tr>
13583 <tr class="entries_header">
13584 <th class="th_details" colspan="5">Details</th>
13585 </tr>
13586 <tr class="entry_cont">
13587 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013588 <p>The k'th bucket (0-based) covers the input range
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013589(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/>
Igor Murashkin0b080452013-12-27 15:30:25 -080013590(k + 1) * w /<wbr/> N ).<wbr/> If only a monochrome sharpness map is
13591supported,<wbr/> all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013592 </td>
13593 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013594
13595
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013596 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13597 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013598
13599
13600 <tr class="entry" id="dynamic_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013601 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013602 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013603 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013604 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013605 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013606
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013607 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013608
13609 <ul class="entry_type_enum">
13610 <li>
13611 <span class="entry_type_enum_name">OFF</span>
13612 </li>
13613 <li>
13614 <span class="entry_type_enum_name">ON</span>
13615 </li>
13616 </ul>
13617
13618 </td> <!-- entry_type -->
13619
13620 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013621 <p>Operating mode for histogram
13622generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013623 </td>
13624
13625 <td class="entry_units">
13626 </td>
13627
13628 <td class="entry_range">
13629 </td>
13630
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013631 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013632 <ul class="entry_tags">
13633 <li><a href="#tag_V1">V1</a></li>
13634 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013635 </td>
13636
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013637 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013638
13639
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013640 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13641 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013642
13643
13644 <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013645 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013646 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013647 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013648 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013649 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013650 <span class="entry_type_container">x</span>
13651
13652 <span class="entry_type_array">
13653 n x m x 3
13654 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013655 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013656 <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>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013657
13658
13659 </td> <!-- entry_type -->
13660
13661 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013662 <p>A 3-channel sharpness map,<wbr/> based on the raw
13663sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013664 </td>
13665
13666 <td class="entry_units">
13667 </td>
13668
13669 <td class="entry_range">
13670 </td>
13671
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013672 <td class="entry_tags">
13673 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013674 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013675 </ul>
13676 </td>
13677
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013678 </tr>
13679 <tr class="entries_header">
13680 <th class="th_details" colspan="5">Details</th>
13681 </tr>
13682 <tr class="entry_cont">
13683 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013684 <p>If only a monochrome sharpness map is supported,<wbr/>
13685all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013686 </td>
13687 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013688
13689
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013690 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13691 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013692
13693
13694 <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013695 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013696 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013697 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013698 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013699 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013700
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013701 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013702
13703 <ul class="entry_type_enum">
13704 <li>
13705 <span class="entry_type_enum_name">OFF</span>
13706 </li>
13707 <li>
13708 <span class="entry_type_enum_name">ON</span>
13709 </li>
13710 </ul>
13711
13712 </td> <!-- entry_type -->
13713
13714 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013715 <p>Operating mode for sharpness map
13716generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013717 </td>
13718
13719 <td class="entry_units">
13720 </td>
13721
13722 <td class="entry_range">
13723 </td>
13724
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013725 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013726 <ul class="entry_tags">
13727 <li><a href="#tag_V1">V1</a></li>
13728 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013729 </td>
13730
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013731 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013732
13733
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013734 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13735 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013736
Zhijun He69fc0ea2013-07-17 09:42:58 -070013737
13738 <tr class="entry" id="dynamic_android.statistics.lensShadingMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013739 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013740 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013741 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013742 <td class="entry_type">
13743 <span class="entry_type_name">float</span>
13744 <span class="entry_type_container">x</span>
13745
13746 <span class="entry_type_array">
13747 4 x n x m
13748 </span>
13749 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013750 <div class="entry_type_notes">2D array of float gain factors per channel to correct lens shading</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013751
13752
13753 </td> <!-- entry_type -->
13754
13755 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013756 <p>The shading map is a low-resolution floating-point map
13757that lists the coefficients used to correct for vignetting,<wbr/> for each
13758Bayer color channel.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013759 </td>
13760
13761 <td class="entry_units">
13762 </td>
13763
13764 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013765 <p>Each gain factor is &gt;= 1</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013766 </td>
13767
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013768 <td class="entry_tags">
13769 </td>
13770
13771 </tr>
13772 <tr class="entries_header">
13773 <th class="th_details" colspan="5">Details</th>
13774 </tr>
13775 <tr class="entry_cont">
13776 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013777 <p>The least shaded section of the image should have a gain factor
13778of 1; all other sections should have gains above 1.<wbr/></p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013779<p>When <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> = TRANSFORM_<wbr/>MATRIX,<wbr/> the map
Igor Murashkin0b080452013-12-27 15:30:25 -080013780must take into account the colorCorrection settings.<wbr/></p>
13781<p>The shading map is for the entire active pixel array,<wbr/> and is not
13782affected by the crop region specified in the request.<wbr/> Each shading map
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013783entry is the value of the shading compensation map over a specific
Igor Murashkin0b080452013-12-27 15:30:25 -080013784pixel on the sensor.<wbr/> Specifically,<wbr/> with a (N x M) resolution shading
13785map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
13786(x,<wbr/>y) ϵ (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
13787pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
13788The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
13789<p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
13790channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
13791The shading map is stored in a fully interleaved format,<wbr/> and its size
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013792is 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>
Igor Murashkin0b080452013-12-27 15:30:25 -080013793<p>The shading map should have on the order of 30-40 rows and columns,<wbr/>
13794and must be smaller than 64x64.<wbr/></p>
13795<p>As an example,<wbr/> given a very small map defined as:</p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013796<pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]
13797<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> =
Igor Murashkin0b080452013-12-27 15:30:25 -080013798[ 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/>
13799 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/>
13800 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/>
13801 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/>
13802 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/>
13803 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 ]
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013804</code></pre>
13805<p>The low-resolution scaling map images for each channel are
13806(displayed using nearest-neighbor interpolation):</p>
13807<p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
13808<img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
13809<img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
13810<img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013811<p>As a visualization only,<wbr/> inverting the full-color map to recover an
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013812image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013813<p><img alt="Image of a uniform white wall (inverse shading map)" src="images/camera2/metadata/android.statistics.lensShadingMap/inv_shading.png"/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013814 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013815 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013816
13817
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013818 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13819 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013820
13821
13822 <tr class="entry" id="dynamic_android.statistics.predictedColorGains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013823 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013824 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013825 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013826 <td class="entry_type">
13827 <span class="entry_type_name">float</span>
13828 <span class="entry_type_container">x</span>
13829
13830 <span class="entry_type_array">
13831 4
13832 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013833 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013834 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013835
13836
13837 </td> <!-- entry_type -->
13838
13839 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013840 <p>The best-fit color channel gains calculated
13841by the HAL's statistics units for the current output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013842 </td>
13843
13844 <td class="entry_units">
13845 </td>
13846
13847 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013848 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013849 </td>
13850
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013851 <td class="entry_tags">
13852 </td>
13853
13854 </tr>
13855 <tr class="entries_header">
13856 <th class="th_details" colspan="5">Details</th>
13857 </tr>
13858 <tr class="entry_cont">
13859 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013860 <p>This may be different than the gains used for this frame,<wbr/>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013861since statistics processing on data from a new frame
13862typically completes after the transform has already been
Igor Murashkin0b080452013-12-27 15:30:25 -080013863applied to that frame.<wbr/></p>
13864<p>The 4 channel gains are defined in Bayer domain,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013865see <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> for details.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013866<p>This value should always be calculated by the AWB block,<wbr/>
13867regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013868 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013869 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013870
13871
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013872 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13873 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013874
13875
13876 <tr class="entry" id="dynamic_android.statistics.predictedColorTransform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013877 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013878 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013879 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013880 <td class="entry_type">
13881 <span class="entry_type_name">rational</span>
13882 <span class="entry_type_container">x</span>
13883
13884 <span class="entry_type_array">
13885 3 x 3
13886 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013887 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013888 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013889
13890
13891 </td> <!-- entry_type -->
13892
13893 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013894 <p>The best-fit color transform matrix estimate
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013895calculated by the HAL's statistics units for the current
Igor Murashkin0b080452013-12-27 15:30:25 -080013896output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013897 </td>
13898
13899 <td class="entry_units">
13900 </td>
13901
13902 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013903 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013904 </td>
13905
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013906 <td class="entry_tags">
13907 </td>
13908
13909 </tr>
13910 <tr class="entries_header">
13911 <th class="th_details" colspan="5">Details</th>
13912 </tr>
13913 <tr class="entry_cont">
13914 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013915 <p>The HAL must provide the estimate from its
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013916statistics unit on the white balance transforms to use
Igor Murashkin0b080452013-12-27 15:30:25 -080013917for the next frame.<wbr/> These are the values the HAL believes
13918are the best fit for the current output frame.<wbr/> This may
13919be different than the transform used for this frame,<wbr/> since
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013920statistics processing on data from a new frame typically
13921completes after the transform has already been applied to
Igor Murashkin0b080452013-12-27 15:30:25 -080013922that frame.<wbr/></p>
13923<p>These estimates must be provided for all frames,<wbr/> even if
13924capture settings and color transforms are set by the application.<wbr/></p>
13925<p>This value should always be calculated by the AWB block,<wbr/>
13926regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013927 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013928 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013929
13930
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013931 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13932 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013933
13934
13935 <tr class="entry" id="dynamic_android.statistics.sceneFlicker">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013936 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013937 android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013938 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013939 <td class="entry_type">
13940 <span class="entry_type_name entry_type_name_enum">byte</span>
13941
13942 <span class="entry_type_visibility"> [public]</span>
13943
13944 <ul class="entry_type_enum">
13945 <li>
13946 <span class="entry_type_enum_name">NONE</span>
13947 </li>
13948 <li>
13949 <span class="entry_type_enum_name">50HZ</span>
13950 </li>
13951 <li>
13952 <span class="entry_type_enum_name">60HZ</span>
13953 </li>
13954 </ul>
13955
13956 </td> <!-- entry_type -->
13957
13958 <td class="entry_description">
Zhijun Heb8512c52014-02-03 11:46:58 -080013959 <p>The camera device estimated scene illumination lighting
13960frequency.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013961 </td>
13962
13963 <td class="entry_units">
13964 </td>
13965
13966 <td class="entry_range">
13967 </td>
13968
Zhijun He69fc0ea2013-07-17 09:42:58 -070013969 <td class="entry_tags">
13970 </td>
13971
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013972 </tr>
13973 <tr class="entries_header">
13974 <th class="th_details" colspan="5">Details</th>
13975 </tr>
13976 <tr class="entry_cont">
13977 <td class="entry_details" colspan="5">
Zhijun Heb8512c52014-02-03 11:46:58 -080013978 <p>Many light sources,<wbr/> such as most fluorescent lights,<wbr/> flicker at a rate
13979that depends on the local utility power standards.<wbr/> This flicker must be
13980accounted for by auto-exposure routines to avoid artifacts in captured images.<wbr/>
13981The camera device uses this entry to tell the application what the scene
13982illuminant frequency is.<wbr/></p>
13983<p>When manual exposure control is enabled
13984(<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/>
13985the <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> doesn't do the antibanding,<wbr/> and the
13986application can ensure it selects exposure times that do not cause banding
13987issues by looking into this metadata field.<wbr/> See android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
13988for more details.<wbr/></p>
13989<p>Report NONE if there doesn't appear to be flickering illumination.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013990 </td>
13991 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013992
13993
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013994 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13995 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013996
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013997
13998
13999 <!-- end of kind -->
14000 </tbody>
14001
14002 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014003 <tr><td colspan="6" id="section_tonemap" class="section">tonemap</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014004
14005
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014006 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014007
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014008 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014009 <tr>
14010 <th class="th_name">Property Name</th>
14011 <th class="th_type">Type</th>
14012 <th class="th_description">Description</th>
14013 <th class="th_units">Units</th>
14014 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014015 <th class="th_tags">Tags</th>
14016 </tr>
14017 </thead>
14018
14019 <tbody>
14020
14021
14022
14023
14024
14025
14026
14027
14028
14029
14030 <tr class="entry" id="controls_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014031 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014032 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014033 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014034 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014035 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014036 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014037
Zhijun He704d1282013-08-19 15:26:33 -070014038 <span class="entry_type_array">
14039 n x 2
14040 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014041 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014042 <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>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014043
14044
14045 </td> <!-- entry_type -->
14046
14047 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014048 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
14049channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14050CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014051 </td>
14052
14053 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014054 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014055 </td>
14056
14057 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014058 <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014059 </td>
14060
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014061 <td class="entry_tags">
14062 </td>
14063
14064 </tr>
14065 <tr class="entries_header">
14066 <th class="th_details" colspan="5">Details</th>
14067 </tr>
14068 <tr class="entry_cont">
14069 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014070 <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014071 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014072 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014073
14074
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014075 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14076 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014077
14078
14079 <tr class="entry" id="controls_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014080 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014081 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014082 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014083 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014084 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014085 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014086
Zhijun He704d1282013-08-19 15:26:33 -070014087 <span class="entry_type_array">
14088 n x 2
14089 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014090 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014091 <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>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014092
14093
14094 </td> <!-- entry_type -->
14095
14096 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014097 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14098channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14099CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014100 </td>
14101
14102 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014103 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014104 </td>
14105
14106 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014107 <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014108 </td>
14109
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014110 <td class="entry_tags">
14111 </td>
14112
14113 </tr>
14114 <tr class="entries_header">
14115 <th class="th_details" colspan="5">Details</th>
14116 </tr>
14117 <tr class="entry_cont">
14118 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014119 <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014120 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014121 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014122
14123
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014124 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14125 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014126
14127
14128 <tr class="entry" id="controls_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014129 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014130 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014131 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014132 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014133 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014134 <span class="entry_type_container">x</span>
14135
14136 <span class="entry_type_array">
14137 n x 2
14138 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014139 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014140 <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>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014141
14142
14143 </td> <!-- entry_type -->
14144
14145 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014146 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14147channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14148CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014149 </td>
14150
14151 <td class="entry_units">
14152 </td>
14153
14154 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014155 <p>0-1 on both input and output coordinates,<wbr/> normalized
14156as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014157 </td>
14158
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014159 <td class="entry_tags">
14160 <ul class="entry_tags">
14161 <li><a href="#tag_DNG">DNG</a></li>
14162 </ul>
14163 </td>
14164
14165 </tr>
14166 <tr class="entries_header">
14167 <th class="th_details" colspan="5">Details</th>
14168 </tr>
14169 <tr class="entry_cont">
14170 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014171 <p>Each channel's curve is defined by an array of control points:</p>
14172<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14173 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
141742 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14175<p>These are sorted in order of increasing <code>Pin</code>; it is always
14176guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14177define a complete mapping.<wbr/> For input values between control points,<wbr/>
14178the camera device must linearly interpolate between the control
14179points.<wbr/></p>
14180<p>Each curve can have an independent number of points,<wbr/> and the number
14181of points can be less than max (that is,<wbr/> the request doesn't have to
14182always provide a curve with number of points equivalent to
14183<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14184<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14185only specify the red channel and the precision is limited to 4
14186digits,<wbr/> for conciseness.<wbr/></p>
14187<p>Linear mapping:</p>
14188<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 ]
14189</code></pre>
14190<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14191<p>Invert mapping:</p>
14192<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 ]
14193</code></pre>
14194<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14195<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14196<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14197 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/>
14198 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/>
14199 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/>
14200 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 ]
14201</code></pre>
14202<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14203<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14204<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14205 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/>
14206 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/>
14207 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/>
14208 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 ]
14209</code></pre>
14210<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014211 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014212 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014213
Igor Murashkin94e06c42014-01-13 16:51:17 -080014214 <tr class="entries_header">
14215 <th class="th_details" colspan="5">HAL Implementation Details</th>
14216 </tr>
14217 <tr class="entry_cont">
14218 <td class="entry_details" colspan="5">
14219 <p>For good quality of mapping,<wbr/> at least 128 control points are
14220preferred.<wbr/></p>
14221<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14222control points used as are available.<wbr/></p>
14223 </td>
14224 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014225
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014226 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14227 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014228
14229
14230 <tr class="entry" id="controls_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014231 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014232 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014233 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014234 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014235 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014236
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014237 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014238
14239 <ul class="entry_type_enum">
14240 <li>
14241 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014242 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014243android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14244<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14245for applying the tonemapping curve specified by
14246<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
14247<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14248<p>Must not slow down frame rate relative to raw
14249sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014250 </li>
14251 <li>
14252 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014253 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14254<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014255 </li>
14256 <li>
14257 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014258 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14259<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014260 </li>
14261 </ul>
14262
14263 </td> <!-- entry_type -->
14264
14265 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014266 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014267 </td>
14268
14269 <td class="entry_units">
14270 </td>
14271
14272 <td class="entry_range">
14273 </td>
14274
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014275 <td class="entry_tags">
14276 </td>
14277
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014278 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014279 <tr class="entries_header">
14280 <th class="th_details" colspan="5">Details</th>
14281 </tr>
14282 <tr class="entry_cont">
14283 <td class="entry_details" colspan="5">
14284 <p>When switching to an application-defined contrast curve by setting
14285<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14286per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14287mapping from input high-bit-depth pixel value to the output
14288low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14289and output may change depending on the camera pipeline,<wbr/> the values
14290are specified by normalized floating-point numbers.<wbr/></p>
14291<p>More-complex color mapping operations such as 3D color look-up
14292tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14293transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14294CONTRAST_<wbr/>CURVE.<wbr/></p>
14295<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14296emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14297<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/>
14298These values are always available,<wbr/> and as close as possible to the
14299actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14300<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14301provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14302roughly the same.<wbr/></p>
14303 </td>
14304 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014305
14306
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014307 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14308 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014309
14310
14311
14312 <!-- end of kind -->
14313 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014314 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014315
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014316 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014317 <tr>
14318 <th class="th_name">Property Name</th>
14319 <th class="th_type">Type</th>
14320 <th class="th_description">Description</th>
14321 <th class="th_units">Units</th>
14322 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014323 <th class="th_tags">Tags</th>
14324 </tr>
14325 </thead>
14326
14327 <tbody>
14328
14329
14330
14331
14332
14333
14334
14335
14336
14337
14338 <tr class="entry" id="static_android.tonemap.maxCurvePoints">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014339 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014340 android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014341 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014342 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014343 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014344
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014345 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014346
14347
14348 </td> <!-- entry_type -->
14349
14350 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014351 <p>Maximum number of supported points in the
Igor Murashkin94e06c42014-01-13 16:51:17 -080014352tonemap curve that can be used for <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/> or
14353<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>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014354 </td>
14355
14356 <td class="entry_units">
14357 </td>
14358
14359 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014360 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014361 </td>
14362
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014363 <td class="entry_tags">
14364 </td>
14365
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014366 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014367 <tr class="entries_header">
14368 <th class="th_details" colspan="5">Details</th>
14369 </tr>
14370 <tr class="entry_cont">
14371 <td class="entry_details" colspan="5">
14372 <p>If the actual number of points provided by the application (in
14373android.<wbr/>tonemap.<wbr/>curve*) is less than max,<wbr/> the camera device will
14374resample the curve to its internal representation,<wbr/> using linear
14375interpolation.<wbr/></p>
14376<p>The output curves in the result metadata may have a different number
14377of points than the input curves,<wbr/> and will represent the actual
14378hardware curves used as closely as possible when linearly interpolated.<wbr/></p>
14379 </td>
14380 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014381
Igor Murashkin94e06c42014-01-13 16:51:17 -080014382 <tr class="entries_header">
14383 <th class="th_details" colspan="5">HAL Implementation Details</th>
14384 </tr>
14385 <tr class="entry_cont">
14386 <td class="entry_details" colspan="5">
14387 <p>This value must be at least 64.<wbr/> This should be at least 128.<wbr/></p>
14388 </td>
14389 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014390
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014391 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14392 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014393
14394
14395
14396 <!-- end of kind -->
14397 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014398 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014399
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014400 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014401 <tr>
14402 <th class="th_name">Property Name</th>
14403 <th class="th_type">Type</th>
14404 <th class="th_description">Description</th>
14405 <th class="th_units">Units</th>
14406 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014407 <th class="th_tags">Tags</th>
14408 </tr>
14409 </thead>
14410
14411 <tbody>
14412
14413
14414
14415
14416
14417
14418
14419
14420
14421
14422 <tr class="entry" id="dynamic_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014423 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014424 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014425 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014426 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014427 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014428 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014429
Zhijun He704d1282013-08-19 15:26:33 -070014430 <span class="entry_type_array">
14431 n x 2
14432 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014433 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014434 <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>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014435
14436
14437 </td> <!-- entry_type -->
14438
14439 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014440 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
14441channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14442CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014443 </td>
14444
14445 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014446 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014447 </td>
14448
14449 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014450 <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014451 </td>
14452
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014453 <td class="entry_tags">
14454 </td>
14455
14456 </tr>
14457 <tr class="entries_header">
14458 <th class="th_details" colspan="5">Details</th>
14459 </tr>
14460 <tr class="entry_cont">
14461 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014462 <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014463 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014464 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014465
14466
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014467 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14468 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014469
14470
14471 <tr class="entry" id="dynamic_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014472 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014473 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014474 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014475 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014476 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014477 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014478
Zhijun He704d1282013-08-19 15:26:33 -070014479 <span class="entry_type_array">
14480 n x 2
14481 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014482 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014483 <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>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014484
14485
14486 </td> <!-- entry_type -->
14487
14488 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014489 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14490channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14491CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014492 </td>
14493
14494 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014495 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014496 </td>
14497
14498 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014499 <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014500 </td>
14501
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014502 <td class="entry_tags">
14503 </td>
14504
14505 </tr>
14506 <tr class="entries_header">
14507 <th class="th_details" colspan="5">Details</th>
14508 </tr>
14509 <tr class="entry_cont">
14510 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014511 <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014512 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014513 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014514
14515
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014516 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14517 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014518
14519
14520 <tr class="entry" id="dynamic_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014521 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014522 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014523 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014524 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014525 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014526 <span class="entry_type_container">x</span>
14527
14528 <span class="entry_type_array">
14529 n x 2
14530 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014531 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014532 <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>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014533
14534
14535 </td> <!-- entry_type -->
14536
14537 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014538 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14539channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14540CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014541 </td>
14542
14543 <td class="entry_units">
14544 </td>
14545
14546 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014547 <p>0-1 on both input and output coordinates,<wbr/> normalized
14548as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014549 </td>
14550
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014551 <td class="entry_tags">
14552 <ul class="entry_tags">
14553 <li><a href="#tag_DNG">DNG</a></li>
14554 </ul>
14555 </td>
14556
14557 </tr>
14558 <tr class="entries_header">
14559 <th class="th_details" colspan="5">Details</th>
14560 </tr>
14561 <tr class="entry_cont">
14562 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014563 <p>Each channel's curve is defined by an array of control points:</p>
14564<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14565 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
145662 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14567<p>These are sorted in order of increasing <code>Pin</code>; it is always
14568guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14569define a complete mapping.<wbr/> For input values between control points,<wbr/>
14570the camera device must linearly interpolate between the control
14571points.<wbr/></p>
14572<p>Each curve can have an independent number of points,<wbr/> and the number
14573of points can be less than max (that is,<wbr/> the request doesn't have to
14574always provide a curve with number of points equivalent to
14575<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14576<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14577only specify the red channel and the precision is limited to 4
14578digits,<wbr/> for conciseness.<wbr/></p>
14579<p>Linear mapping:</p>
14580<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 ]
14581</code></pre>
14582<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14583<p>Invert mapping:</p>
14584<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 ]
14585</code></pre>
14586<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14587<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14588<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14589 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/>
14590 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/>
14591 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/>
14592 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 ]
14593</code></pre>
14594<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14595<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14596<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14597 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/>
14598 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/>
14599 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/>
14600 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 ]
14601</code></pre>
14602<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014603 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014604 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014605
Igor Murashkin94e06c42014-01-13 16:51:17 -080014606 <tr class="entries_header">
14607 <th class="th_details" colspan="5">HAL Implementation Details</th>
14608 </tr>
14609 <tr class="entry_cont">
14610 <td class="entry_details" colspan="5">
14611 <p>For good quality of mapping,<wbr/> at least 128 control points are
14612preferred.<wbr/></p>
14613<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14614control points used as are available.<wbr/></p>
14615 </td>
14616 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014617
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014618 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14619 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014620
14621
14622 <tr class="entry" id="dynamic_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014623 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014624 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014625 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014626 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014627 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014628
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014629 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014630
14631 <ul class="entry_type_enum">
14632 <li>
14633 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014634 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014635android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14636<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14637for applying the tonemapping curve specified by
14638<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
14639<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14640<p>Must not slow down frame rate relative to raw
14641sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014642 </li>
14643 <li>
14644 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014645 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14646<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014647 </li>
14648 <li>
14649 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014650 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14651<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014652 </li>
14653 </ul>
14654
14655 </td> <!-- entry_type -->
14656
14657 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014658 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014659 </td>
14660
14661 <td class="entry_units">
14662 </td>
14663
14664 <td class="entry_range">
14665 </td>
14666
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014667 <td class="entry_tags">
14668 </td>
14669
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014670 </tr>
Igor Murashkin595f45b2014-01-17 17:27:15 -080014671 <tr class="entries_header">
14672 <th class="th_details" colspan="5">Details</th>
14673 </tr>
14674 <tr class="entry_cont">
14675 <td class="entry_details" colspan="5">
14676 <p>When switching to an application-defined contrast curve by setting
14677<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14678per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14679mapping from input high-bit-depth pixel value to the output
14680low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14681and output may change depending on the camera pipeline,<wbr/> the values
14682are specified by normalized floating-point numbers.<wbr/></p>
14683<p>More-complex color mapping operations such as 3D color look-up
14684tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14685transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14686CONTRAST_<wbr/>CURVE.<wbr/></p>
14687<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14688emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14689<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/>
14690These values are always available,<wbr/> and as close as possible to the
14691actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14692<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14693provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14694roughly the same.<wbr/></p>
14695 </td>
14696 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014697
14698
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014699 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14700 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014701
14702
14703
14704 <!-- end of kind -->
14705 </tbody>
14706
14707 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014708 <tr><td colspan="6" id="section_led" class="section">led</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014709
14710
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014711 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014712
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014713 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014714 <tr>
14715 <th class="th_name">Property Name</th>
14716 <th class="th_type">Type</th>
14717 <th class="th_description">Description</th>
14718 <th class="th_units">Units</th>
14719 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014720 <th class="th_tags">Tags</th>
14721 </tr>
14722 </thead>
14723
14724 <tbody>
14725
14726
14727
14728
14729
14730
14731
14732
14733
14734
14735 <tr class="entry" id="controls_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014736 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014737 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014738 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014739 <td class="entry_type">
14740 <span class="entry_type_name entry_type_name_enum">byte</span>
14741
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014742 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014743
14744 <ul class="entry_type_enum">
14745 <li>
14746 <span class="entry_type_enum_name">OFF</span>
14747 </li>
14748 <li>
14749 <span class="entry_type_enum_name">ON</span>
14750 </li>
14751 </ul>
14752
14753 </td> <!-- entry_type -->
14754
14755 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014756 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014757that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014758Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014759disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014760any untrusted applications.<wbr/></p>
14761<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14762transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14763data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014764<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014765doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014766 </td>
14767
14768 <td class="entry_units">
14769 </td>
14770
14771 <td class="entry_range">
14772 </td>
14773
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014774 <td class="entry_tags">
14775 </td>
14776
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014777 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014778
14779
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014780 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14781 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014782
14783
14784
14785 <!-- end of kind -->
14786 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014787 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014788
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014789 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014790 <tr>
14791 <th class="th_name">Property Name</th>
14792 <th class="th_type">Type</th>
14793 <th class="th_description">Description</th>
14794 <th class="th_units">Units</th>
14795 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014796 <th class="th_tags">Tags</th>
14797 </tr>
14798 </thead>
14799
14800 <tbody>
14801
14802
14803
14804
14805
14806
14807
14808
14809
14810
14811 <tr class="entry" id="dynamic_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014812 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014813 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014814 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014815 <td class="entry_type">
14816 <span class="entry_type_name entry_type_name_enum">byte</span>
14817
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014818 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014819
14820 <ul class="entry_type_enum">
14821 <li>
14822 <span class="entry_type_enum_name">OFF</span>
14823 </li>
14824 <li>
14825 <span class="entry_type_enum_name">ON</span>
14826 </li>
14827 </ul>
14828
14829 </td> <!-- entry_type -->
14830
14831 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014832 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014833that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014834Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014835disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014836any untrusted applications.<wbr/></p>
14837<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14838transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14839data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014840<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014841doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014842 </td>
14843
14844 <td class="entry_units">
14845 </td>
14846
14847 <td class="entry_range">
14848 </td>
14849
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014850 <td class="entry_tags">
14851 </td>
14852
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014853 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014854
14855
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014856 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14857 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014858
14859
14860
14861 <!-- end of kind -->
14862 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014863 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014864
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014865 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014866 <tr>
14867 <th class="th_name">Property Name</th>
14868 <th class="th_type">Type</th>
14869 <th class="th_description">Description</th>
14870 <th class="th_units">Units</th>
14871 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014872 <th class="th_tags">Tags</th>
14873 </tr>
14874 </thead>
14875
14876 <tbody>
14877
14878
14879
14880
14881
14882
14883
14884
14885
14886
14887 <tr class="entry" id="static_android.led.availableLeds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014888 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014889 android.<wbr/>led.<wbr/>available<wbr/>Leds
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014890 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014891 <td class="entry_type">
14892 <span class="entry_type_name entry_type_name_enum">byte</span>
14893 <span class="entry_type_container">x</span>
14894
14895 <span class="entry_type_array">
14896 n
14897 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014898 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014899
14900 <ul class="entry_type_enum">
14901 <li>
14902 <span class="entry_type_enum_name">TRANSMIT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014903 <span class="entry_type_enum_notes"><p><a href="#controls_android.led.transmit">android.<wbr/>led.<wbr/>transmit</a> control is used</p></span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014904 </li>
14905 </ul>
14906
14907 </td> <!-- entry_type -->
14908
14909 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014910 <p>A list of camera LEDs that are available on this system.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014911 </td>
14912
14913 <td class="entry_units">
14914 </td>
14915
14916 <td class="entry_range">
14917 </td>
14918
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014919 <td class="entry_tags">
14920 </td>
14921
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014922 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014923
14924
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014925 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14926 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014927
14928
14929
14930 <!-- end of kind -->
14931 </tbody>
14932
14933 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014934 <tr><td colspan="6" id="section_info" class="section">info</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014935
14936
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014937 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014938
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014939 <thead class="entries_header">
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014940 <tr>
14941 <th class="th_name">Property Name</th>
14942 <th class="th_type">Type</th>
14943 <th class="th_description">Description</th>
14944 <th class="th_units">Units</th>
14945 <th class="th_range">Range</th>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014946 <th class="th_tags">Tags</th>
14947 </tr>
14948 </thead>
14949
14950 <tbody>
14951
14952
14953
14954
14955
14956
14957
14958
14959
14960
14961 <tr class="entry" id="static_android.info.supportedHardwareLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014962 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014963 android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014964 </td>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014965 <td class="entry_type">
14966 <span class="entry_type_name entry_type_name_enum">byte</span>
14967
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014968 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014969
14970 <ul class="entry_type_enum">
14971 <li>
14972 <span class="entry_type_enum_name">LIMITED</span>
14973 </li>
14974 <li>
14975 <span class="entry_type_enum_name">FULL</span>
14976 </li>
14977 </ul>
14978
14979 </td> <!-- entry_type -->
14980
14981 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014982 <p>The camera 3 HAL device can implement one of two possible
14983operational modes; limited and full.<wbr/> Full support is
14984expected from new higher-end devices.<wbr/> Limited mode has
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014985hardware requirements roughly in line with those for a
Igor Murashkin0b080452013-12-27 15:30:25 -080014986camera HAL device v1 implementation,<wbr/> and is expected from
14987older or inexpensive devices.<wbr/> Full is a strict superset of
14988limited,<wbr/> and they share the same essential operational flow.<wbr/></p>
14989<p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014990 </td>
14991
14992 <td class="entry_units">
14993 </td>
14994
14995 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014996 <p>Optional.<wbr/> Default value is LIMITED.<wbr/></p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014997 </td>
14998
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014999 <td class="entry_tags">
15000 </td>
15001
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015002 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015003
15004
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015005 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15006 <!-- end of entry -->
Igor Murashkin38b8cae2013-05-23 16:38:59 -070015007
15008
15009
15010 <!-- end of kind -->
15011 </tbody>
15012
15013 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015014 <tr><td colspan="6" id="section_blackLevel" class="section">blackLevel</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015015
15016
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015017 <tr><td colspan="6" class="kind">controls</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015018
15019 <thead class="entries_header">
15020 <tr>
15021 <th class="th_name">Property Name</th>
15022 <th class="th_type">Type</th>
15023 <th class="th_description">Description</th>
15024 <th class="th_units">Units</th>
15025 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015026 <th class="th_tags">Tags</th>
15027 </tr>
15028 </thead>
15029
15030 <tbody>
15031
15032
15033
15034
15035
15036
15037
15038
15039
15040
15041 <tr class="entry" id="controls_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015042 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015043 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015044 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015045 <td class="entry_type">
15046 <span class="entry_type_name entry_type_name_enum">byte</span>
15047
Igor Murashkinb8dc8812013-07-17 16:29:34 -070015048 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015049
15050 <ul class="entry_type_enum">
15051 <li>
15052 <span class="entry_type_enum_name">OFF</span>
15053 </li>
15054 <li>
15055 <span class="entry_type_enum_name">ON</span>
15056 </li>
15057 </ul>
15058
15059 </td> <!-- entry_type -->
15060
15061 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015062 <p>Whether black-level compensation is locked
15063to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015064 </td>
15065
15066 <td class="entry_units">
15067 </td>
15068
15069 <td class="entry_range">
15070 </td>
15071
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015072 <td class="entry_tags">
15073 <ul class="entry_tags">
15074 <li><a href="#tag_HAL2">HAL2</a></li>
15075 </ul>
15076 </td>
15077
15078 </tr>
15079 <tr class="entries_header">
15080 <th class="th_details" colspan="5">Details</th>
15081 </tr>
15082 <tr class="entry_cont">
15083 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015084 <p>When set to ON,<wbr/> the values used for black-level
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015085compensation will not change until the lock is set to
Igor Murashkin0b080452013-12-27 15:30:25 -080015086OFF.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015087<p>Since changes to certain capture parameters (such as
15088exposure time) may require resetting of black level
Igor Murashkin0b080452013-12-27 15:30:25 -080015089compensation,<wbr/> the camera device must report whether setting
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015090the black level lock was successful in the output result
Igor Murashkin0b080452013-12-27 15:30:25 -080015091metadata.<wbr/></p>
15092<p>For example,<wbr/> if a sequence of requests is as follows:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015093<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015094<li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
15095<li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15096<li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15097<li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15098<li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15099<li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015100</ul>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015101<p>And the exposure change in Request 4 requires the camera
Igor Murashkin0b080452013-12-27 15:30:25 -080015102device to reset the black level offsets,<wbr/> then the output
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015103result metadata is expected to be:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015104<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015105<li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
15106<li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15107<li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15108<li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li>
15109<li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15110<li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015111</ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015112<p>This indicates to the application that on frame 4,<wbr/> black
15113levels were reset due to exposure value changes,<wbr/> and pixel
15114values may not be consistent across captures.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015115<p>The camera device will maintain the lock to the extent
Igor Murashkin0b080452013-12-27 15:30:25 -080015116possible,<wbr/> only overriding the lock to OFF when changes to
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015117other request parameters require a black level recalculation
Igor Murashkin0b080452013-12-27 15:30:25 -080015118or reset.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015119 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015120 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015121
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015122 <tr class="entries_header">
15123 <th class="th_details" colspan="5">HAL Implementation Details</th>
15124 </tr>
15125 <tr class="entry_cont">
15126 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015127 <p>If for some reason black level locking is no longer possible
15128(for example,<wbr/> the analog gain has changed,<wbr/> which forces
15129black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015130override this request (and it must report 'OFF' when this
15131does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080015132possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015133 </td>
15134 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015135
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015136 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15137 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070015138
15139
15140
15141 <!-- end of kind -->
15142 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015143 <tr><td colspan="6" class="kind">dynamic</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015144
15145 <thead class="entries_header">
15146 <tr>
15147 <th class="th_name">Property Name</th>
15148 <th class="th_type">Type</th>
15149 <th class="th_description">Description</th>
15150 <th class="th_units">Units</th>
15151 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015152 <th class="th_tags">Tags</th>
15153 </tr>
15154 </thead>
15155
15156 <tbody>
15157
15158
15159
15160
15161
15162
15163
15164
15165
15166
15167 <tr class="entry" id="dynamic_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015168 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015169 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015170 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015171 <td class="entry_type">
15172 <span class="entry_type_name entry_type_name_enum">byte</span>
15173
Igor Murashkinb8dc8812013-07-17 16:29:34 -070015174 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015175
15176 <ul class="entry_type_enum">
15177 <li>
15178 <span class="entry_type_enum_name">OFF</span>
15179 </li>
15180 <li>
15181 <span class="entry_type_enum_name">ON</span>
15182 </li>
15183 </ul>
15184
15185 </td> <!-- entry_type -->
15186
15187 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015188 <p>Whether black-level compensation is locked
15189to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015190 </td>
15191
15192 <td class="entry_units">
15193 </td>
15194
15195 <td class="entry_range">
15196 </td>
15197
Zhijun He69fc0ea2013-07-17 09:42:58 -070015198 <td class="entry_tags">
15199 <ul class="entry_tags">
15200 <li><a href="#tag_HAL2">HAL2</a></li>
15201 </ul>
15202 </td>
15203
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015204 </tr>
15205 <tr class="entries_header">
15206 <th class="th_details" colspan="5">Details</th>
15207 </tr>
15208 <tr class="entry_cont">
15209 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015210 <p>Whether the black level offset was locked for this frame.<wbr/> Should be
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080015211ON if <a href="#controls_android.blackLevel.lock">android.<wbr/>black<wbr/>Level.<wbr/>lock</a> was ON in the capture request,<wbr/> unless
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015212a change in other capture settings forced the camera device to
Igor Murashkin0b080452013-12-27 15:30:25 -080015213perform a black level reset.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015214 </td>
15215 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015216
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015217 <tr class="entries_header">
15218 <th class="th_details" colspan="5">HAL Implementation Details</th>
15219 </tr>
15220 <tr class="entry_cont">
15221 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015222 <p>If for some reason black level locking is no longer possible
15223(for example,<wbr/> the analog gain has changed,<wbr/> which forces
15224black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015225override this request (and it must report 'OFF' when this
15226does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080015227possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015228 </td>
15229 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015230
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015231 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15232 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070015233
15234
15235
15236 <!-- end of kind -->
15237 </tbody>
15238
15239 <!-- end of section -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015240 <tr><td colspan="6" id="section_sync" class="section">sync</td></tr>
15241
15242
15243 <tr><td colspan="6" class="kind">dynamic</td></tr>
15244
15245 <thead class="entries_header">
15246 <tr>
15247 <th class="th_name">Property Name</th>
15248 <th class="th_type">Type</th>
15249 <th class="th_description">Description</th>
15250 <th class="th_units">Units</th>
15251 <th class="th_range">Range</th>
15252 <th class="th_tags">Tags</th>
15253 </tr>
15254 </thead>
15255
15256 <tbody>
15257
15258
15259
15260
15261
15262
15263
15264
15265
15266
15267 <tr class="entry" id="dynamic_android.sync.frameNumber">
15268 <td class="entry_name" rowspan="5">
15269 android.<wbr/>sync.<wbr/>frame<wbr/>Number
15270 </td>
15271 <td class="entry_type">
15272 <span class="entry_type_name entry_type_name_enum">int64</span>
15273
15274 <span class="entry_type_visibility"> [hidden]</span>
15275
15276 <ul class="entry_type_enum">
15277 <li>
15278 <span class="entry_type_enum_name">CONVERGING</span>
15279 <span class="entry_type_enum_value">-1</span>
15280 <span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/>
15281Synchronization is in progress,<wbr/> and reading metadata from this
15282result may include a mix of data that have taken effect since the
15283last synchronization time.<wbr/></p>
15284<p>In some future result,<wbr/> within <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> frames,<wbr/>
15285this value will update to the actual frame number frame number
15286the result is guaranteed to be synchronized to (as long as the
15287request settings remain constant).<wbr/></p></span>
15288 </li>
15289 <li>
15290 <span class="entry_type_enum_name">UNKNOWN</span>
15291 <span class="entry_type_enum_value">-2</span>
15292 <span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/> The
15293result may have already converged,<wbr/> or it may be in progress.<wbr/>
15294Reading from this result may include some mix of settings from
15295past requests.<wbr/></p>
15296<p>After a settings change,<wbr/> the new settings will eventually all
15297take effect for the output buffers and results.<wbr/> However,<wbr/> this
15298value will not change when that happens.<wbr/> Altering settings
15299rapidly may provide outcomes using mixes of settings from recent
15300requests.<wbr/></p>
15301<p>This value is intended primarily for backwards compatibility with
15302the older camera implementations (for android.<wbr/>hardware.<wbr/>Camera).<wbr/></p></span>
15303 </li>
15304 </ul>
15305
15306 </td> <!-- entry_type -->
15307
15308 <td class="entry_description">
15309 <p>The frame number corresponding to the last request
15310with which the output result (metadata + buffers) has been fully
15311synchronized.<wbr/></p>
15312 </td>
15313
15314 <td class="entry_units">
15315 </td>
15316
15317 <td class="entry_range">
15318 <p>Either a non-negative value corresponding to a
15319<code>frame_<wbr/>number</code>,<wbr/> or one of the two enums (CONVERGING /<wbr/> UNKNOWN).<wbr/></p>
15320 </td>
15321
15322 <td class="entry_tags">
15323 <ul class="entry_tags">
15324 <li><a href="#tag_LIMITED">LIMITED</a></li>
15325 </ul>
15326 </td>
15327
15328 </tr>
15329 <tr class="entries_header">
15330 <th class="th_details" colspan="5">Details</th>
15331 </tr>
15332 <tr class="entry_cont">
15333 <td class="entry_details" colspan="5">
15334 <p>When a request is submitted to the camera device,<wbr/> there is usually a
15335delay of several frames before the controls get applied.<wbr/> A camera
15336device may either choose to account for this delay by implementing a
15337pipeline and carefully submit well-timed atomic control updates,<wbr/> or
15338it may start streaming control changes that span over several frame
15339boundaries.<wbr/></p>
15340<p>In the latter case,<wbr/> whenever a request's settings change relative to
15341the previous submitted request,<wbr/> the full set of changes may take
15342multiple frame durations to fully take effect.<wbr/> Some settings may
15343take effect sooner (in less frame durations) than others.<wbr/></p>
15344<p>While a set of control changes are being propagated,<wbr/> this value
15345will be CONVERGING.<wbr/></p>
15346<p>Once it is fully known that a set of control changes have been
15347finished propagating,<wbr/> and the resulting updated control settings
15348have been read back by the camera device,<wbr/> this value will be set
15349to a non-negative frame number (corresponding to the request to
15350which the results have synchronized to).<wbr/></p>
15351<p>Older camera device implementations may not have a way to detect
15352when all camera controls have been applied,<wbr/> and will always set this
15353value to UNKNOWN.<wbr/></p>
15354<p>FULL capability devices will always have this value set to the
15355frame number of the request corresponding to this result.<wbr/></p>
15356<p><em>Further details</em>:</p>
15357<ul>
15358<li>Whenever a request differs from the last request,<wbr/> any future
15359results not yet returned may have this value set to CONVERGING (this
15360could include any in-progress captures not yet returned by the camera
15361device,<wbr/> for more details see pipeline considerations below).<wbr/></li>
15362<li>Submitting a series of multiple requests that differ from the
15363previous request (e.<wbr/>g.<wbr/> r1,<wbr/> r2,<wbr/> r3 s.<wbr/>t.<wbr/> r1 != r2 != r3)
15364moves the new synchronization frame to the last non-repeating
15365request (using the smallest frame number from the contiguous list of
15366repeating requests).<wbr/></li>
15367<li>Submitting the same request repeatedly will not change this value
15368to CONVERGING,<wbr/> if it was already a non-negative value.<wbr/></li>
15369<li>When this value changes to non-negative,<wbr/> that means that all of the
15370metadata controls from the request have been applied,<wbr/> all of the
15371metadata controls from the camera device have been read to the
15372updated values (into the result),<wbr/> and all of the graphics buffers
15373corresponding to this result are also synchronized to the request.<wbr/></li>
15374</ul>
15375<p><em>Pipeline considerations</em>:</p>
15376<p>Submitting a request with updated controls relative to the previously
15377submitted requests may also invalidate the synchronization state
15378of all the results corresponding to currently in-flight requests.<wbr/></p>
15379<p>In other words,<wbr/> results for this current request and up to
15380<a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> prior requests may have their
15381<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> change to CONVERGING.<wbr/></p>
15382 </td>
15383 </tr>
15384
15385 <tr class="entries_header">
15386 <th class="th_details" colspan="5">HAL Implementation Details</th>
15387 </tr>
15388 <tr class="entry_cont">
15389 <td class="entry_details" colspan="5">
15390 <p>Using UNKNOWN here is illegal unless android.<wbr/>sync.<wbr/>max<wbr/>Latency
15391is also UNKNOWN.<wbr/></p>
15392<p>FULL capability devices should simply set this value to the
15393<code>frame_<wbr/>number</code> of the request this result corresponds to.<wbr/></p>
15394 </td>
15395 </tr>
15396
15397 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15398 <!-- end of entry -->
15399
15400
15401
15402 <!-- end of kind -->
15403 </tbody>
15404 <tr><td colspan="6" class="kind">static</td></tr>
15405
15406 <thead class="entries_header">
15407 <tr>
15408 <th class="th_name">Property Name</th>
15409 <th class="th_type">Type</th>
15410 <th class="th_description">Description</th>
15411 <th class="th_units">Units</th>
15412 <th class="th_range">Range</th>
15413 <th class="th_tags">Tags</th>
15414 </tr>
15415 </thead>
15416
15417 <tbody>
15418
15419
15420
15421
15422
15423
15424
15425
15426
15427
15428 <tr class="entry" id="static_android.sync.maxLatency">
15429 <td class="entry_name" rowspan="5">
15430 android.<wbr/>sync.<wbr/>max<wbr/>Latency
15431 </td>
15432 <td class="entry_type">
15433 <span class="entry_type_name entry_type_name_enum">int32</span>
15434
15435 <span class="entry_type_visibility"> [public]</span>
15436
15437 <ul class="entry_type_enum">
15438 <li>
15439 <span class="entry_type_enum_name">PER_FRAME_CONTROL</span>
15440 <span class="entry_type_enum_value">0</span>
15441 <span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/>
15442(and furthermore for all results,<wbr/>
15443<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>
15444<p>Changing controls over multiple requests one after another will
15445produce results that have those controls applied atomically
15446each frame.<wbr/></p>
15447<p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
15448 </li>
15449 <li>
15450 <span class="entry_type_enum_name">UNKNOWN</span>
15451 <span class="entry_type_enum_value">-1</span>
15452 <span class="entry_type_enum_notes"><p>Each new frame has some subset (potentially the entire set)
15453of the past requests applied to the camera settings.<wbr/></p>
15454<p>By submitting a series of identical requests,<wbr/> the camera device
15455will eventually have the camera settings applied,<wbr/> but it is
15456unknown when that exact point will be.<wbr/></p></span>
15457 </li>
15458 </ul>
15459
15460 </td> <!-- entry_type -->
15461
15462 <td class="entry_description">
15463 <p>The maximum number of frames that can occur after a request
15464(different than the previous) has been submitted,<wbr/> and before the
15465result's state becomes synchronized (by setting
15466<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> to a non-negative value).<wbr/></p>
15467 </td>
15468
15469 <td class="entry_units">
15470 number of processed requests
15471 </td>
15472
15473 <td class="entry_range">
15474 <p>&gt;= -1</p>
15475 </td>
15476
15477 <td class="entry_tags">
15478 <ul class="entry_tags">
15479 <li><a href="#tag_LIMITED">LIMITED</a></li>
15480 </ul>
15481 </td>
15482
15483 </tr>
15484 <tr class="entries_header">
15485 <th class="th_details" colspan="5">Details</th>
15486 </tr>
15487 <tr class="entry_cont">
15488 <td class="entry_details" colspan="5">
15489 <p>This defines the maximum distance (in number of metadata results),<wbr/>
15490between <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> and the equivalent
15491<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15492<p>In other words this acts as an upper boundary for how many frames
15493must occur before the camera device knows for a fact that the new
15494submitted camera settings have been applied in outgoing frames.<wbr/></p>
15495<p>For example if the distance was 2,<wbr/></p>
15496<pre><code>initial request = X (repeating)
15497request1 = X
15498request2 = Y
15499request3 = Y
15500request4 = Y
15501
15502where requestN has frameNumber N,<wbr/> and the first of the repeating
15503initial request's has frameNumber F (and F &lt; 1).<wbr/>
15504
15505initial result = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15506result1 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15507result2 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15508result3 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15509result4 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2 }
15510
15511where resultN has frameNumber N.<wbr/>
15512</code></pre>
15513<p>Since <code>result4</code> has a <code>frameNumber == 4</code> and
15514<code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2</code>,<wbr/> the distance is clearly
15515<code>4 - 2 = 2</code>.<wbr/></p>
15516 </td>
15517 </tr>
15518
15519 <tr class="entries_header">
15520 <th class="th_details" colspan="5">HAL Implementation Details</th>
15521 </tr>
15522 <tr class="entry_cont">
15523 <td class="entry_details" colspan="5">
15524 <p>Use <code>frame_<wbr/>count</code> from camera3_<wbr/>request_<wbr/>t instead of
15525<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15526<p>LIMITED devices are strongly encouraged to use a non-negative
15527value.<wbr/> If UNKNOWN is used here then app developers do not have a way
15528to know when sensor settings have been applied.<wbr/></p>
15529 </td>
15530 </tr>
15531
15532 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15533 <!-- end of entry -->
15534
15535
15536
15537 <!-- end of kind -->
15538 </tbody>
15539
15540 <!-- end of section -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015541<!-- </namespace> -->
15542 </table>
15543
15544 <div class="tags" id="tag_index">
15545 <h2>Tags</h2>
15546 <ul>
15547 <li id="tag_AWB">AWB -
15548 Needed for auto white balance
15549
15550 <ul class="tags_entries">
15551 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15552 </ul>
15553 </li> <!-- tag_AWB -->
15554 <li id="tag_BC">BC -
15555 Needed for backwards compatibility with old Java API
15556
15557 <ul class="tags_entries">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -080015558 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015559 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
15560 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
15561 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
15562 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
15563 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015564 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015565 <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
15566 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015567 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015568 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
15569 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15570 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
15571 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
15572 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
15573 <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
15574 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
15575 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -080015576 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015577 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
15578 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
15579 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
15580 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
15581 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
15582 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
15583 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
15584 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
15585 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
15586 <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
15587 <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
15588 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
15589 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
15590 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
15591 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
15592 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
15593 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
15594 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
15595 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
15596 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15597 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15598 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a> (static)</li>
15599 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
15600 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
15601 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
15602 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
15603 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
15604 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
Igor Murashkinf11a4df2013-05-07 10:00:46 -070015605 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015606 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
15607 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
15608 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015609 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015610 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015611 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15612 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15613 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15614 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
15615 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
15616 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
15617 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
15618 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
15619 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
15620 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
15621 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
15622 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
15623 </ul>
15624 </li> <!-- tag_BC -->
15625 <li id="tag_V1">V1 -
15626 New features for first camera 2 release (API1)
15627
15628 <ul class="tags_entries">
15629 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
15630 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
15631 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
15632 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
15633 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
15634 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
15635 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
15636 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
15637 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15638 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
15639 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
15640 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
15641 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15642 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
15643 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li>
15644 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
15645 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
15646 <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li>
15647 <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
15648 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
15649 <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
15650 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
15651 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
15652 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015653 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015654 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
15655 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15656 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15657 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15658 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15659 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li>
15660 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
15661 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
15662 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
15663 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
15664 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
15665 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
15666 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
15667 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
15668 </ul>
15669 </li> <!-- tag_V1 -->
15670 <li id="tag_ADV">ADV - None
15671 <ul class="tags_entries">
15672 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
15673 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
15674 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li>
15675 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li>
15676 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li>
15677 <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
15678 </ul>
15679 </li> <!-- tag_ADV -->
15680 <li id="tag_DNG">DNG -
15681 Needed for DNG file support
15682
15683 <ul class="tags_entries">
15684 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015685 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
15686 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
15687 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15688 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
15689 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
15690 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li>
15691 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li>
15692 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li>
15693 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li>
15694 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li>
15695 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li>
15696 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15697 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li>
15698 </ul>
15699 </li> <!-- tag_DNG -->
15700 <li id="tag_EXIF">EXIF - None
15701 <ul class="tags_entries">
15702 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15703 </ul>
15704 </li> <!-- tag_EXIF -->
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015705 <li id="tag_HAL2">HAL2 -
Alex Rayef40ad62013-10-01 17:52:33 -070015706 Entry is only used by camera device HAL 2.x
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015707
15708 <ul class="tags_entries">
15709 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li>
15710 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li>
15711 <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li>
Zhijun He12744b22014-01-22 15:58:57 -080015712 <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a> (static)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015713 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015714 </ul>
15715 </li> <!-- tag_HAL2 -->
Alex Rayef40ad62013-10-01 17:52:33 -070015716 <li id="tag_FULL">FULL -
15717 Entry is required for full hardware level devices, and optional for other hardware levels
15718
15719 <ul class="tags_entries">
15720 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15721 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15722 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li>
15723 </ul>
15724 </li> <!-- tag_FULL -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015725 <li id="tag_LIMITED">LIMITED -
15726 Entry assists with LIMITED device implementation. LIMITED devices
15727 must implement all entries with this tag. Optional for FULL devices.
15728
15729 <ul class="tags_entries">
15730 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a> (dynamic)</li>
15731 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a> (static)</li>
15732 </ul>
15733 </li> <!-- tag_LIMITED -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015734 </ul>
15735 </div>
15736
15737 [ <a href="#">top</a> ]
15738
15739</body>
15740</html>