blob: 454dd58502aea6c3151c788a90e489488d66b8d9 [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>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800426 <li><a href="#static_android.request.pipelineMaxDepth">android.request.pipelineMaxDepth</a></li>
Igor Murashkin2e291102014-01-10 14:18:30 -0800427 <li><a href="#static_android.request.partialResultCount">android.request.partialResultCount</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700428 </ul>
429 </li>
430 <li>
431 <span class="toc_kind_header">dynamic</span>
432 <ul class="toc_section">
433 <li><a href="#dynamic_android.request.frameCount">android.request.frameCount</a></li>
434 <li><a href="#dynamic_android.request.id">android.request.id</a></li>
435 <li><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a></li>
436 <li><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800437 <li><a href="#dynamic_android.request.pipelineDepth">android.request.pipelineDepth</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700438 </ul>
439 </li>
440 </ul> <!-- toc_section -->
441 </li>
442 <li>
443 <span class="toc_section_header"><a href="#section_scaler">scaler</a></span>
444 <ul class="toc_section">
445 <li>
446 <span class="toc_kind_header">controls</span>
447 <ul class="toc_section">
448 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
449 </ul>
450 </li>
451 <li>
452 <span class="toc_kind_header">static</span>
453 <ul class="toc_section">
454 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a></li>
455 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a></li>
456 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a></li>
457 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a></li>
458 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a></li>
459 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a></li>
460 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a></li>
461 <li><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a></li>
462 </ul>
463 </li>
464 <li>
465 <span class="toc_kind_header">dynamic</span>
466 <ul class="toc_section">
467 <li><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
468 </ul>
469 </li>
470 </ul> <!-- toc_section -->
471 </li>
472 <li>
473 <span class="toc_section_header"><a href="#section_sensor">sensor</a></span>
474 <ul class="toc_section">
475 <li>
476 <span class="toc_kind_header">controls</span>
477 <ul class="toc_section">
478 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
479 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
480 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800481 <li><a href="#controls_android.sensor.testPatternData">android.sensor.testPatternData</a></li>
482 <li><a href="#controls_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700483 </ul>
484 </li>
485 <li>
486 <span class="toc_kind_header">static</span>
487 <ul class="toc_section">
488
489 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700490 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700491 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a></li>
492 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a></li>
493 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a></li>
494 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a></li>
495 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a></li>
496 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a></li>
497
498 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a></li>
499 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a></li>
500 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a></li>
501 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a></li>
502 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a></li>
503 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a></li>
504 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a></li>
505 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a></li>
506 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a></li>
507 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a></li>
508 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a></li>
509 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a></li>
510 <li><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800511 <li><a href="#static_android.sensor.availableTestPatternModes">android.sensor.availableTestPatternModes</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700512 </ul>
513 </li>
514 <li>
515 <span class="toc_kind_header">dynamic</span>
516 <ul class="toc_section">
517 <li><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
518 <li><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
519 <li><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
520 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a></li>
Igor Murashkin656aa5a2013-08-13 14:23:39 -0700521 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800522 <li><a href="#dynamic_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700523 </ul>
524 </li>
525 </ul> <!-- toc_section -->
526 </li>
527 <li>
528 <span class="toc_section_header"><a href="#section_shading">shading</a></span>
529 <ul class="toc_section">
530 <li>
531 <span class="toc_kind_header">controls</span>
532 <ul class="toc_section">
533 <li><a href="#controls_android.shading.mode">android.shading.mode</a></li>
534 <li><a href="#controls_android.shading.strength">android.shading.strength</a></li>
535 </ul>
536 </li>
537 <li>
538 <span class="toc_kind_header">dynamic</span>
539 <ul class="toc_section">
540 <li><a href="#dynamic_android.shading.mode">android.shading.mode</a></li>
541 </ul>
542 </li>
543 </ul> <!-- toc_section -->
544 </li>
545 <li>
546 <span class="toc_section_header"><a href="#section_statistics">statistics</a></span>
547 <ul class="toc_section">
548 <li>
549 <span class="toc_kind_header">controls</span>
550 <ul class="toc_section">
551 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
552 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
553 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700554 <li><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700555 </ul>
556 </li>
557 <li>
558 <span class="toc_kind_header">static</span>
559 <ul class="toc_section">
560
561 <li><a href="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a></li>
562 <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a></li>
563 <li><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a></li>
564 <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a></li>
565 <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a></li>
566 <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a></li>
567
568 </ul>
569 </li>
570 <li>
571 <span class="toc_kind_header">dynamic</span>
572 <ul class="toc_section">
573 <li><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
574 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a></li>
575 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a></li>
576 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a></li>
577 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a></li>
578 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a></li>
579 <li><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
580 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a></li>
581 <li><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700582 <li><a href="#dynamic_android.statistics.lensShadingMap">android.statistics.lensShadingMap</a></li>
583 <li><a href="#dynamic_android.statistics.predictedColorGains">android.statistics.predictedColorGains</a></li>
584 <li><a href="#dynamic_android.statistics.predictedColorTransform">android.statistics.predictedColorTransform</a></li>
585 <li><a href="#dynamic_android.statistics.sceneFlicker">android.statistics.sceneFlicker</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700586 </ul>
587 </li>
588 </ul> <!-- toc_section -->
589 </li>
590 <li>
591 <span class="toc_section_header"><a href="#section_tonemap">tonemap</a></span>
592 <ul class="toc_section">
593 <li>
594 <span class="toc_kind_header">controls</span>
595 <ul class="toc_section">
596 <li><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
597 <li><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
598 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
599 <li><a href="#controls_android.tonemap.mode">android.tonemap.mode</a></li>
600 </ul>
601 </li>
602 <li>
603 <span class="toc_kind_header">static</span>
604 <ul class="toc_section">
605 <li><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a></li>
606 </ul>
607 </li>
608 <li>
609 <span class="toc_kind_header">dynamic</span>
610 <ul class="toc_section">
611 <li><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
612 <li><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
613 <li><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
614 <li><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a></li>
615 </ul>
616 </li>
617 </ul> <!-- toc_section -->
618 </li>
619 <li>
620 <span class="toc_section_header"><a href="#section_led">led</a></span>
621 <ul class="toc_section">
622 <li>
623 <span class="toc_kind_header">controls</span>
624 <ul class="toc_section">
625 <li><a href="#controls_android.led.transmit">android.led.transmit</a></li>
626 </ul>
627 </li>
628 <li>
629 <span class="toc_kind_header">dynamic</span>
630 <ul class="toc_section">
631 <li><a href="#dynamic_android.led.transmit">android.led.transmit</a></li>
632 </ul>
633 </li>
634 <li>
635 <span class="toc_kind_header">static</span>
636 <ul class="toc_section">
637 <li><a href="#static_android.led.availableLeds">android.led.availableLeds</a></li>
638 </ul>
639 </li>
640 </ul> <!-- toc_section -->
641 </li>
642 <li>
643 <span class="toc_section_header"><a href="#section_info">info</a></span>
644 <ul class="toc_section">
645 <li>
646 <span class="toc_kind_header">static</span>
647 <ul class="toc_section">
648 <li><a href="#static_android.info.supportedHardwareLevel">android.info.supportedHardwareLevel</a></li>
649 </ul>
650 </li>
651 </ul> <!-- toc_section -->
652 </li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700653 <li>
654 <span class="toc_section_header"><a href="#section_blackLevel">blackLevel</a></span>
655 <ul class="toc_section">
656 <li>
657 <span class="toc_kind_header">controls</span>
658 <ul class="toc_section">
659 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a></li>
660 </ul>
661 </li>
662 <li>
663 <span class="toc_kind_header">dynamic</span>
664 <ul class="toc_section">
665 <li><a href="#dynamic_android.blackLevel.lock">android.blackLevel.lock</a></li>
666 </ul>
667 </li>
668 </ul> <!-- toc_section -->
669 </li>
Igor Murashkin5c1fc682014-01-16 17:51:36 -0800670 <li>
671 <span class="toc_section_header"><a href="#section_sync">sync</a></span>
672 <ul class="toc_section">
673 <li>
674 <span class="toc_kind_header">dynamic</span>
675 <ul class="toc_section">
676 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a></li>
677 </ul>
678 </li>
679 <li>
680 <span class="toc_kind_header">static</span>
681 <ul class="toc_section">
682 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a></li>
683 </ul>
684 </li>
685 </ul> <!-- toc_section -->
686 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800687 </ul>
688
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700689
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800690 <h1>Properties</h1>
691 <table class="properties">
692
693 <thead class="thead_dummy">
694 <tr>
695 <th class="th_name">Property Name</th>
696 <th class="th_type">Type</th>
697 <th class="th_description">Description</th>
698 <th class="th_units">Units</th>
699 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800700 <th class="th_tags">Tags</th>
701 </tr>
702 </thead> <!-- so that the first occurrence of thead is not
703 above the first occurrence of tr -->
704<!-- <namespace name="android"> -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800705 <tr><td colspan="6" id="section_colorCorrection" class="section">colorCorrection</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800706
707
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800708 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800709
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700710 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800711 <tr>
712 <th class="th_name">Property Name</th>
713 <th class="th_type">Type</th>
714 <th class="th_description">Description</th>
715 <th class="th_units">Units</th>
716 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800717 <th class="th_tags">Tags</th>
718 </tr>
719 </thead>
720
721 <tbody>
722
723
724
725
726
727
728
729
730
731
732 <tr class="entry" id="controls_android.colorCorrection.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800733 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800734 android.<wbr/>color<wbr/>Correction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800735 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800736 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -0800737 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800738
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700739 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800740
741 <ul class="entry_type_enum">
742 <li>
743 <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
Igor Murashkina10351a2014-01-15 17:05:22 -0800744 <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 -0800745and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
746<p>All advanced white balance adjustments (not specified
747by our white balance pipeline) must be disabled.<wbr/></p>
748<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
749TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override
750this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800751 </li>
752 <li>
753 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800754 <span class="entry_type_enum_notes"><p>Must not slow down capture rate relative to sensor raw
755output.<wbr/></p>
756<p>Advanced white balance adjustments above and beyond
757the specified white balance pipeline may be applied.<wbr/></p>
758<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
759the camera device uses the last frame's AWB values
760(or defaults if AWB has never been run).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800761 </li>
762 <li>
763 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800764 <span class="entry_type_enum_notes"><p>Capture rate (relative to sensor raw output)
765may be reduced by high quality.<wbr/></p>
766<p>Advanced white balance adjustments above and beyond
767the specified white balance pipeline may be applied.<wbr/></p>
768<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
769the camera device uses the last frame's AWB values
770(or defaults if AWB has never been run).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800771 </li>
772 </ul>
773
774 </td> <!-- entry_type -->
775
776 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800777 <p>The mode control selects how the image data is converted from the
778sensor's native color into linear sRGB color.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800779 </td>
780
781 <td class="entry_units">
782 </td>
783
784 <td class="entry_range">
785 </td>
786
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800787 <td class="entry_tags">
788 </td>
789
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800790 </tr>
791 <tr class="entries_header">
792 <th class="th_details" colspan="5">Details</th>
793 </tr>
794 <tr class="entry_cont">
795 <td class="entry_details" colspan="5">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800796 <p>When auto-white balance is enabled with <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> this
797control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the
798application controls how the color mapping is performed.<wbr/></p>
799<p>We define the expected processing pipeline below.<wbr/> For consistency
800across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p>
801<p>When either FULL or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may
802do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
803<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the
804camera device (in the results) and be roughly correct.<wbr/></p>
805<p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from
806FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point
807as what was produced by the camera device in the earlier frame.<wbr/></p>
808<p>The expected processing pipeline is as follows:</p>
809<p><img alt="White balance processing pipeline" src="images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png"/></p>
810<p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance
811gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform
812matrix (applied after demosaic).<wbr/></p>
813<p>The 4-channel white-balance gains are defined as:</p>
814<pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ]
815</code></pre>
816<p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the
817output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/>
818These may be identical for a given camera device implementation; if
819the camera device does not support a separate gain for even/<wbr/>odd green
820channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
821<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
822<p>The matrices for color transforms are defined as a 9-entry vector:</p>
823<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 ]
824</code></pre>
825<p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/>
826to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p>
827<p>with colors as follows:</p>
828<pre><code>r' = I0r + I1g + I2b
829g' = I3r + I4g + I5b
830b' = I6r + I7g + I8b
831</code></pre>
832<p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow
833values are clipped to fit within the range.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800834 </td>
835 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800836
837
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800838 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
839 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800840
841
842 <tr class="entry" id="controls_android.colorCorrection.transform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800843 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800844 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800845 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800846 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700847 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800848 <span class="entry_type_container">x</span>
849
850 <span class="entry_type_array">
851 3 x 3
852 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700853 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800854 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800855
856
857 </td> <!-- entry_type -->
858
859 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -0800860 <p>A color transform matrix to use to transform
861from sensor RGB color space to output linear sRGB color space</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800862 </td>
863
864 <td class="entry_units">
865 </td>
866
867 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800868 <p>Output values are expected to be in the range
869(0,<wbr/>1)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800870 </td>
871
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800872 <td class="entry_tags">
873 </td>
874
875 </tr>
876 <tr class="entries_header">
877 <th class="th_details" colspan="5">Details</th>
878 </tr>
879 <tr class="entry_cont">
880 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -0800881 <p>This matrix is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800882<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 -0800883directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800884<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -0800885<p>In the latter case,<wbr/> the HAL may round the matrix to account
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800886for precision issues; the final rounded matrix should be
Igor Murashkin0b080452013-12-27 15:30:25 -0800887reported back in this matrix result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700888 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800889 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800890
891
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800892 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
893 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -0700894
895
896 <tr class="entry" id="controls_android.colorCorrection.gains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800897 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800898 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800899 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700900 <td class="entry_type">
901 <span class="entry_type_name">float</span>
902 <span class="entry_type_container">x</span>
903
904 <span class="entry_type_array">
905 4
906 </span>
907 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800908 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700909
910
911 </td> <!-- entry_type -->
912
913 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800914 <p>Gains applying to Bayer raw color channels for
Igor Murashkin0b080452013-12-27 15:30:25 -0800915white-balance</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700916 </td>
917
918 <td class="entry_units">
919 </td>
920
921 <td class="entry_range">
922 </td>
923
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800924 <td class="entry_tags">
925 </td>
926
927 </tr>
928 <tr class="entries_header">
929 <th class="th_details" colspan="5">Details</th>
930 </tr>
931 <tr class="entry_cont">
932 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -0800933 <p>The 4-channel white-balance gains are defined in
Igor Murashkin43817ad2014-01-10 15:58:35 -0800934the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
935for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
936is the gain for green pixels on the odd rows.<wbr/> if a HAL
Igor Murashkin0b080452013-12-27 15:30:25 -0800937does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800938it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
939<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800940<p>This array is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800941<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 -0800942directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800943<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 -0800944<p>The output should be the gains actually applied by the HAL to
Igor Murashkin0b080452013-12-27 15:30:25 -0800945the current frame.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800946 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800947 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800948
949
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800950 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
951 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800952
953
954
955 <!-- end of kind -->
956 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800957 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800958
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700959 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800960 <tr>
961 <th class="th_name">Property Name</th>
962 <th class="th_type">Type</th>
963 <th class="th_description">Description</th>
964 <th class="th_units">Units</th>
965 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800966 <th class="th_tags">Tags</th>
967 </tr>
968 </thead>
969
970 <tbody>
971
972
973
974
975
976
977
978
979
980
Zhijun He69fc0ea2013-07-17 09:42:58 -0700981 <tr class="entry" id="dynamic_android.colorCorrection.transform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800982 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800983 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800984 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800985 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700986 <span class="entry_type_name">rational</span>
987 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800988
Zhijun He69fc0ea2013-07-17 09:42:58 -0700989 <span class="entry_type_array">
990 3 x 3
991 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700992 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800993 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800994
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800995
996 </td> <!-- entry_type -->
997
998 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -0800999 <p>A color transform matrix to use to transform
1000from sensor RGB color space to output linear sRGB color space</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001001 </td>
1002
1003 <td class="entry_units">
1004 </td>
1005
1006 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001007 <p>Output values are expected to be in the range
1008(0,<wbr/>1)</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001009 </td>
1010
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001011 <td class="entry_tags">
1012 </td>
1013
1014 </tr>
1015 <tr class="entries_header">
1016 <th class="th_details" colspan="5">Details</th>
1017 </tr>
1018 <tr class="entry_cont">
1019 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001020 <p>This matrix is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001021<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 -08001022directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001023<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08001024<p>In the latter case,<wbr/> the HAL may round the matrix to account
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001025for precision issues; the final rounded matrix should be
Igor Murashkin0b080452013-12-27 15:30:25 -08001026reported back in this matrix result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001027 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001028 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001029
1030
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001031 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1032 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -07001033
1034
1035 <tr class="entry" id="dynamic_android.colorCorrection.gains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001036 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001037 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001038 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001039 <td class="entry_type">
1040 <span class="entry_type_name">float</span>
1041 <span class="entry_type_container">x</span>
1042
1043 <span class="entry_type_array">
1044 4
1045 </span>
1046 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08001047 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001048
1049
1050 </td> <!-- entry_type -->
1051
1052 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -08001053 <p>Gains applying to Bayer raw color channels for
Igor Murashkin0b080452013-12-27 15:30:25 -08001054white-balance</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001055 </td>
1056
1057 <td class="entry_units">
1058 </td>
1059
1060 <td class="entry_range">
1061 </td>
1062
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001063 <td class="entry_tags">
1064 </td>
1065
1066 </tr>
1067 <tr class="entries_header">
1068 <th class="th_details" colspan="5">Details</th>
1069 </tr>
1070 <tr class="entry_cont">
1071 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001072 <p>The 4-channel white-balance gains are defined in
Igor Murashkin43817ad2014-01-10 15:58:35 -08001073the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
1074for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
1075is the gain for green pixels on the odd rows.<wbr/> if a HAL
Igor Murashkin0b080452013-12-27 15:30:25 -08001076does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
Igor Murashkin43817ad2014-01-10 15:58:35 -08001077it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
1078<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001079<p>This array is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001080<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 -08001081directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001082<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 -08001083<p>The output should be the gains actually applied by the HAL to
Igor Murashkin0b080452013-12-27 15:30:25 -08001084the current frame.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001085 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001086 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001087
1088
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001089 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1090 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001091
1092
1093
1094 <!-- end of kind -->
1095 </tbody>
1096
1097 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001098 <tr><td colspan="6" id="section_control" class="section">control</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001099
1100
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001101 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001102
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001103 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001104 <tr>
1105 <th class="th_name">Property Name</th>
1106 <th class="th_type">Type</th>
1107 <th class="th_description">Description</th>
1108 <th class="th_units">Units</th>
1109 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001110 <th class="th_tags">Tags</th>
1111 </tr>
1112 </thead>
1113
1114 <tbody>
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125 <tr class="entry" id="controls_android.control.aeAntibandingMode">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001126 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001127 android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001128 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001129 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001130 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001131
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001132 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001133
1134 <ul class="entry_type_enum">
1135 <li>
1136 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001137 <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
1138avoid banding problems.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001139 </li>
1140 <li>
1141 <span class="entry_type_enum_name">50HZ</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001142 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1143avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001144 </li>
1145 <li>
1146 <span class="entry_type_enum_name">60HZ</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001147 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1148avoid banding problems with 60Hz illumination
1149sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001150 </li>
1151 <li>
1152 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001153 <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
1154antibanding routine to the current illumination
1155conditions.<wbr/> This is the default.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001156 </li>
1157 </ul>
1158
1159 </td> <!-- entry_type -->
1160
1161 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001162 <p>The desired setting for the camera device's auto-exposure
1163algorithm's antibanding compensation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001164 </td>
1165
1166 <td class="entry_units">
1167 </td>
1168
1169 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001170 <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 -08001171 </td>
1172
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001173 <td class="entry_tags">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001174 <ul class="entry_tags">
1175 <li><a href="#tag_BC">BC</a></li>
1176 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001177 </td>
1178
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001179 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001180 <tr class="entries_header">
1181 <th class="th_details" colspan="5">Details</th>
1182 </tr>
1183 <tr class="entry_cont">
1184 <td class="entry_details" colspan="5">
1185 <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
1186lights,<wbr/> flicker at the rate of the power supply frequency
1187(60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
1188typically not noticeable to a person,<wbr/> it can be visible to
1189a camera device.<wbr/> If a camera sets its exposure time to the
1190wrong value,<wbr/> the flicker may become visible in the
1191viewfinder as flicker or in a final captured image,<wbr/> as a
1192set of variable-brightness bands across the image.<wbr/></p>
1193<p>Therefore,<wbr/> the auto-exposure routines of camera devices
1194include antibanding routines that ensure that the chosen
1195exposure value will not cause such banding.<wbr/> The choice of
1196exposure time depends on the rate of flicker,<wbr/> which the
1197camera device can detect automatically,<wbr/> or the expected
1198rate can be selected by the application using this
1199control.<wbr/></p>
1200<p>A given camera device may not support all of the possible
1201options for the antibanding mode.<wbr/> The
1202<a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
1203the available modes for a given camera device.<wbr/></p>
1204<p>The default mode is AUTO,<wbr/> which must be supported by all
1205camera devices.<wbr/></p>
1206<p>If manual exposure control is enabled (by setting
1207<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/>
1208then this setting has no effect,<wbr/> and the application must
1209ensure it selects exposure times that do not cause banding
1210issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
1211the application in this.<wbr/></p>
1212 </td>
1213 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001214
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001215 <tr class="entries_header">
1216 <th class="th_details" colspan="5">HAL Implementation Details</th>
1217 </tr>
1218 <tr class="entry_cont">
1219 <td class="entry_details" colspan="5">
1220 <p>For all capture request templates,<wbr/> this field must be set
1221to AUTO.<wbr/> AUTO is the only mode that must supported;
1222OFF,<wbr/> 50HZ,<wbr/> 60HZ are all optional.<wbr/></p>
1223<p>If manual exposure control is enabled (by setting
1224<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/>
1225then the exposure values provided by the application must not be
1226adjusted for antibanding.<wbr/></p>
1227 </td>
1228 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001229
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001230 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1231 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001232
1233
1234 <tr class="entry" id="controls_android.control.aeExposureCompensation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001235 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001236 android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001237 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001238 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001239 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001240
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001241 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001242
1243
1244 </td> <!-- entry_type -->
1245
1246 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001247 <p>Adjustment to AE target image
1248brightness</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001249 </td>
1250
1251 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08001252 count of positive/<wbr/>negative EV steps
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001253 </td>
1254
1255 <td class="entry_range">
1256 </td>
1257
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001258 <td class="entry_tags">
1259 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001260 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001261 </ul>
1262 </td>
1263
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001264 </tr>
1265 <tr class="entries_header">
1266 <th class="th_details" colspan="5">Details</th>
1267 </tr>
1268 <tr class="entry_cont">
1269 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001270 <p>For example,<wbr/> if EV step is 0.<wbr/>333,<wbr/> '6' will mean an
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001271exposure compensation of +2 EV; -3 will mean an exposure
Igor Murashkin0b080452013-12-27 15:30:25 -08001272compensation of -1</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001273 </td>
1274 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001275
1276
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001277 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1278 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001279
1280
1281 <tr class="entry" id="controls_android.control.aeLock">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001282 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001283 android.<wbr/>control.<wbr/>ae<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001284 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001285 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001286 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001287
Igor Murashkinb8dc8812013-07-17 16:29:34 -07001288 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001289
1290 <ul class="entry_type_enum">
1291 <li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001292 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001293 <span class="entry_type_enum_notes"><p>Autoexposure lock is disabled; the AE algorithm
1294is free to update its parameters.<wbr/></p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001295 </li>
1296 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001297 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001298 <span class="entry_type_enum_notes"><p>Autoexposure lock is enabled; the AE algorithm
1299must not update the exposure and sensitivity parameters
1300while the lock is active</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001301 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001302 </ul>
1303
1304 </td> <!-- entry_type -->
1305
1306 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001307 <p>Whether AE is currently locked to its latest
1308calculated values</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001309 </td>
1310
1311 <td class="entry_units">
1312 </td>
1313
1314 <td class="entry_range">
1315 </td>
1316
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001317 <td class="entry_tags">
1318 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001319 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001320 </ul>
1321 </td>
1322
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001323 </tr>
1324 <tr class="entries_header">
1325 <th class="th_details" colspan="5">Details</th>
1326 </tr>
1327 <tr class="entry_cont">
1328 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001329 <p>Note that even when AE is locked,<wbr/> the flash may be
1330fired if the AE mode is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/> ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/>
1331ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001332 </td>
1333 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001334
1335
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001336 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1337 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001338
1339
1340 <tr class="entry" id="controls_android.control.aeMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001341 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001342 android.<wbr/>control.<wbr/>ae<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001343 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001344 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001345 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001346
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001347 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001348
1349 <ul class="entry_type_enum">
1350 <li>
1351 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001352 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
1353the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1354<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
1355<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
1356device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
1357a flash unit for this camera device.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001358 </li>
1359 <li>
1360 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001361 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
1362with no flash control.<wbr/> The application's values for
1363<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1364<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1365<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
1366application has control over the various
1367android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001368 </li>
1369 <li>
1370 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001371 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1372the camera's flash unit,<wbr/> firing it in low-light
1373conditions.<wbr/> The flash may be fired during a
1374precapture sequence (triggered by
1375<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
1376for captures for which the
1377<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1378STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001379 </li>
1380 <li>
1381 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001382 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1383the camera's flash unit,<wbr/> always firing it for still
1384captures.<wbr/> The flash may be fired during a precapture
1385sequence (triggered by
1386<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
1387be fired for captures for which the
1388<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1389STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001390 </li>
1391 <li>
1392 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001393 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
1394reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
1395a red eye reduction flash will fire during the
1396precapture sequence.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001397 </li>
1398 </ul>
1399
1400 </td> <!-- entry_type -->
1401
1402 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08001403 <p>The desired mode for the camera device's
1404auto-exposure routine.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001405 </td>
1406
1407 <td class="entry_units">
1408 </td>
1409
1410 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001411 <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 -08001412 </td>
1413
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001414 <td class="entry_tags">
1415 <ul class="entry_tags">
1416 <li><a href="#tag_BC">BC</a></li>
1417 </ul>
1418 </td>
1419
1420 </tr>
1421 <tr class="entries_header">
1422 <th class="th_details" colspan="5">Details</th>
1423 </tr>
1424 <tr class="entry_cont">
1425 <td class="entry_details" colspan="5">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08001426 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
1427AUTO.<wbr/></p>
1428<p>When set to any of the ON modes,<wbr/> the camera device's
1429auto-exposure routine is enabled,<wbr/> overriding the
1430application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
1431and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1432<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1433<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
1434is selected,<wbr/> the camera device's flash unit controls are
1435also overridden.<wbr/></p>
1436<p>The FLASH modes are only available if the camera device
1437has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
1438<p>If flash TORCH mode is desired,<wbr/> this field must be set to
1439ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
1440<p>When set to any of the ON modes,<wbr/> the values chosen by the
1441camera device auto-exposure routine for the overridden
1442fields for a given capture will be available in its
1443CaptureResult.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001444 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001445 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001446
1447
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001448 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1449 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001450
1451
1452 <tr class="entry" id="controls_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001453 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001454 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001455 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001456 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001457 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001458 <span class="entry_type_container">x</span>
1459
1460 <span class="entry_type_array">
1461 5 x area_count
1462 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001463 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001464
1465
1466 </td> <!-- entry_type -->
1467
1468 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001469 <p>List of areas to use for
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001470metering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001471 </td>
1472
1473 <td class="entry_units">
1474 </td>
1475
1476 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001477 <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 -08001478 </td>
1479
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001480 <td class="entry_tags">
1481 <ul class="entry_tags">
1482 <li><a href="#tag_BC">BC</a></li>
1483 </ul>
1484 </td>
1485
1486 </tr>
1487 <tr class="entries_header">
1488 <th class="th_details" colspan="5">Details</th>
1489 </tr>
1490 <tr class="entry_cont">
1491 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001492 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001493xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08001494specified coordinates.<wbr/></p>
1495<p>The coordinate system is based on the active pixel array,<wbr/>
1496with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001497(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1498<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 -08001499bottom-right pixel in the active pixel array.<wbr/> The weight
1500should be nonnegative.<wbr/></p>
1501<p>If all regions have 0 weight,<wbr/> then no specific metering area
1502needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001503outside 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 -08001504should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001505used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001506 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001507 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001508
1509
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001510 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1511 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001512
1513
1514 <tr class="entry" id="controls_android.control.aeTargetFpsRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001515 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001516 android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001517 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001518 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001519 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001520 <span class="entry_type_container">x</span>
1521
1522 <span class="entry_type_array">
1523 2
1524 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001525 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001526
1527
1528 </td> <!-- entry_type -->
1529
1530 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001531 <p>Range over which fps can be adjusted to
1532maintain exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001533 </td>
1534
1535 <td class="entry_units">
1536 </td>
1537
1538 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001539 <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 -08001540 </td>
1541
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001542 <td class="entry_tags">
1543 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001544 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001545 </ul>
1546 </td>
1547
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001548 </tr>
1549 <tr class="entries_header">
1550 <th class="th_details" colspan="5">Details</th>
1551 </tr>
1552 <tr class="entry_cont">
1553 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001554 <p>Only constrains AE algorithm,<wbr/> not manual control
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001555of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001556 </td>
1557 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001558
1559
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001560 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1561 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001562
1563
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001564 <tr class="entry" id="controls_android.control.aePrecaptureTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001565 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001566 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001567 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001568 <td class="entry_type">
1569 <span class="entry_type_name entry_type_name_enum">byte</span>
1570
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001571 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001572
1573 <ul class="entry_type_enum">
1574 <li>
1575 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001576 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001577 </li>
1578 <li>
1579 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001580 <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
1581by the camera device.<wbr/> The exact effect of the precapture
1582trigger depends on the current AE mode and state.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001583 </li>
1584 </ul>
1585
1586 </td> <!-- entry_type -->
1587
1588 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001589 <p>Whether the camera device will trigger a precapture
1590metering sequence when it processes this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001591 </td>
1592
1593 <td class="entry_units">
1594 </td>
1595
1596 <td class="entry_range">
1597 </td>
1598
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001599 <td class="entry_tags">
1600 <ul class="entry_tags">
1601 <li><a href="#tag_BC">BC</a></li>
1602 </ul>
1603 </td>
1604
1605 </tr>
1606 <tr class="entries_header">
1607 <th class="th_details" colspan="5">Details</th>
1608 </tr>
1609 <tr class="entry_cont">
1610 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001611 <p>This entry is normally set to IDLE,<wbr/> or is not
1612included at all in the request settings.<wbr/> When included and
Zhijun He92e698d2014-01-13 16:24:31 -08001613set to START,<wbr/> the camera device will trigger the autoexposure
Igor Murashkin0b080452013-12-27 15:30:25 -08001614precapture metering sequence.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001615<p>The effect of AE precapture trigger depends on the current
Zhijun He92e698d2014-01-13 16:24:31 -08001616AE mode and state; see <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture
1617state transition details.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001618 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001619 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001620
1621
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001622 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1623 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001624
1625
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001626 <tr class="entry" id="controls_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001627 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001628 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001629 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001630 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001631 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001632
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001633 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001634
1635 <ul class="entry_type_enum">
1636 <li>
1637 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001638 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
1639<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
1640application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001641 </li>
1642 <li>
1643 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001644 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
1645<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
1646is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
1647the autofocus trigger action is called.<wbr/> When that trigger
1648is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
1649the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
1650<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
1651and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001652 </li>
1653 <li>
1654 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001655 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
1656autofocus trigger action is called.<wbr/></p>
1657<p>When that trigger is activated,<wbr/> AF must transition to
1658ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
1659NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
1660position to default,<wbr/> and sets the AF state to
1661INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001662 </li>
1663 <li>
1664 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001665 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1666position continually to attempt to provide a
1667constantly-in-focus image stream.<wbr/></p>
1668<p>The focusing behavior should be suitable for good quality
1669video recording; typically this means slower focus
1670movement and no overshoots.<wbr/> When the AF trigger is not
1671involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
1672and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
1673states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
1674the algorithm should immediately transition into
1675AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1676lens position until a cancel AF trigger is received.<wbr/></p>
1677<p>Once cancel is received,<wbr/> the algorithm should transition
1678back to INACTIVE and resume passive scan.<wbr/> Note that this
1679behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
1680ongoing PASSIVE_<wbr/>SCAN must immediately be
1681canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001682 </li>
1683 <li>
1684 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001685 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1686position continually to attempt to provide a
1687constantly-in-focus image stream.<wbr/></p>
1688<p>The focusing behavior should be suitable for still image
1689capture; typically this means focusing as fast as
1690possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
1691algorithm should start in INACTIVE state,<wbr/> and then
1692transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
1693appropriate as it attempts to maintain focus.<wbr/> When the AF
1694trigger is activated,<wbr/> the algorithm should finish its
1695PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
1696AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1697lens position until a cancel AF trigger is received.<wbr/></p>
1698<p>When the AF cancel trigger is activated,<wbr/> the algorithm
1699should transition back to INACTIVE and then act as if it
1700has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001701 </li>
1702 <li>
1703 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001704 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
1705trigger is ignored,<wbr/> AF state should always be
1706INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001707 </li>
1708 </ul>
1709
1710 </td> <!-- entry_type -->
1711
1712 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001713 <p>Whether AF is currently enabled,<wbr/> and what
1714mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001715 </td>
1716
1717 <td class="entry_units">
1718 </td>
1719
1720 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08001721 <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 -08001722 </td>
1723
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001724 <td class="entry_tags">
1725 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001726 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001727 </ul>
1728 </td>
1729
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001730 </tr>
1731 <tr class="entries_header">
1732 <th class="th_details" colspan="5">Details</th>
1733 </tr>
1734 <tr class="entry_cont">
1735 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001736 <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 -08001737<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
1738the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
1739in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001740 </td>
1741 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001742
1743
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001744 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1745 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001746
1747
1748 <tr class="entry" id="controls_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001749 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001750 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001751 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001752 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001753 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001754 <span class="entry_type_container">x</span>
1755
1756 <span class="entry_type_array">
1757 5 x area_count
1758 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001759 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001760
1761
1762 </td> <!-- entry_type -->
1763
1764 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001765 <p>List of areas to use for focus
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001766estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001767 </td>
1768
1769 <td class="entry_units">
1770 </td>
1771
1772 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001773 <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 -08001774 </td>
1775
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001776 <td class="entry_tags">
1777 <ul class="entry_tags">
1778 <li><a href="#tag_BC">BC</a></li>
1779 </ul>
1780 </td>
1781
1782 </tr>
1783 <tr class="entries_header">
1784 <th class="th_details" colspan="5">Details</th>
1785 </tr>
1786 <tr class="entry_cont">
1787 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001788 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001789xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08001790specified coordinates.<wbr/></p>
1791<p>The coordinate system is based on the active pixel array,<wbr/>
1792with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001793(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1794<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 -08001795bottom-right pixel in the active pixel array.<wbr/> The weight
1796should be nonnegative.<wbr/></p>
1797<p>If all regions have 0 weight,<wbr/> then no specific focus area
1798needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001799outside 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 -08001800should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001801used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001802 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001803 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001804
1805
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001806 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1807 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001808
1809
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001810 <tr class="entry" id="controls_android.control.afTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001811 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001812 android.<wbr/>control.<wbr/>af<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001813 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001814 <td class="entry_type">
1815 <span class="entry_type_name entry_type_name_enum">byte</span>
1816
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001817 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001818
1819 <ul class="entry_type_enum">
1820 <li>
1821 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001822 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001823 </li>
1824 <li>
1825 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001826 <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001827 </li>
1828 <li>
1829 <span class="entry_type_enum_name">CANCEL</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001830 <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
1831state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001832 </li>
1833 </ul>
1834
1835 </td> <!-- entry_type -->
1836
1837 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001838 <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001839 </td>
1840
1841 <td class="entry_units">
1842 </td>
1843
1844 <td class="entry_range">
1845 </td>
1846
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001847 <td class="entry_tags">
1848 <ul class="entry_tags">
1849 <li><a href="#tag_BC">BC</a></li>
1850 </ul>
1851 </td>
1852
1853 </tr>
1854 <tr class="entries_header">
1855 <th class="th_details" colspan="5">Details</th>
1856 </tr>
1857 <tr class="entry_cont">
1858 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001859 <p>This entry is normally set to IDLE,<wbr/> or is not
1860included at all in the request settings.<wbr/></p>
Zhijun He92e698d2014-01-13 16:24:31 -08001861<p>When included and set to START,<wbr/> the camera device will trigger the
1862autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
1863<p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
1864and return to its initial AF state.<wbr/></p>
1865<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 -07001866 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001867 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001868
1869
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001870 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1871 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001872
1873
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001874 <tr class="entry" id="controls_android.control.awbLock">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001875 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001876 android.<wbr/>control.<wbr/>awb<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001877 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001878 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001879 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001880
Igor Murashkinb8dc8812013-07-17 16:29:34 -07001881 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001882
1883 <ul class="entry_type_enum">
1884 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001885 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001886 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is disabled; the AWB
1887algorithm is free to update its parameters if in AUTO
1888mode.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001889 </li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001890 <li>
1891 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001892 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is enabled; the AWB
1893algorithm must not update the exposure and sensitivity
1894parameters while the lock is active</p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001895 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001896 </ul>
1897
1898 </td> <!-- entry_type -->
1899
1900 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001901 <p>Whether AWB is currently locked to its
1902latest calculated values</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001903 </td>
1904
1905 <td class="entry_units">
1906 </td>
1907
1908 <td class="entry_range">
1909 </td>
1910
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001911 <td class="entry_tags">
1912 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001913 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001914 </ul>
1915 </td>
1916
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001917 </tr>
1918 <tr class="entries_header">
1919 <th class="th_details" colspan="5">Details</th>
1920 </tr>
1921 <tr class="entry_cont">
1922 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001923 <p>Note that AWB lock is only meaningful for AUTO
1924mode; in other modes,<wbr/> AWB is already fixed to a specific
1925setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001926 </td>
1927 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001928
1929
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001930 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1931 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001932
1933
1934 <tr class="entry" id="controls_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001935 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001936 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001937 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001938 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001939 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001940
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001941 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001942
1943 <ul class="entry_type_enum">
1944 <li>
1945 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001946 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1947the application-selected color transform matrix
1948(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
1949(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
1950device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001951 </li>
1952 <li>
1953 <span class="entry_type_enum_name">AUTO</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 active;
1955the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
1956and <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 -08001957 </li>
1958 <li>
1959 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001960 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1961the camera device uses incandescent light as the assumed scene
1962illumination for white balance.<wbr/> While the exact white balance
1963transforms are up to the camera device,<wbr/> they will approximately
1964match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001965 </li>
1966 <li>
1967 <span class="entry_type_enum_name">FLUORESCENT</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 fluorescent 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 F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001973 </li>
1974 <li>
1975 <span class="entry_type_enum_name">WARM_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 warm 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 F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001981 </li>
1982 <li>
1983 <span class="entry_type_enum_name">DAYLIGHT</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 daylight 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 D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001989 </li>
1990 <li>
1991 <span class="entry_type_enum_name">CLOUDY_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 cloudy daylight light as the assumed scene
1994illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001995 </li>
1996 <li>
1997 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001998 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1999the camera device uses twilight light as the assumed scene
2000illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002001 </li>
2002 <li>
2003 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002004 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2005the camera device uses shade light as the assumed scene
2006illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002007 </li>
2008 </ul>
2009
2010 </td> <!-- entry_type -->
2011
2012 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002013 <p>Whether AWB is currently setting the color
2014transform fields,<wbr/> and what its illumination target
2015is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002016 </td>
2017
2018 <td class="entry_units">
2019 </td>
2020
2021 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08002022 <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 -08002023 </td>
2024
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002025 <td class="entry_tags">
2026 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002027 <li><a href="#tag_BC">BC</a></li>
2028 <li><a href="#tag_AWB">AWB</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002029 </ul>
2030 </td>
2031
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002032 </tr>
2033 <tr class="entries_header">
2034 <th class="th_details" colspan="5">Details</th>
2035 </tr>
2036 <tr class="entry_cont">
2037 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08002038 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
2039<p>When set to the ON mode,<wbr/> the camera device's auto white balance
2040routine is enabled,<wbr/> overriding the application's selected
2041<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
2042<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2043<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
2044routine is disabled.<wbr/> The applicantion manually controls the white
2045balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
2046and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2047<p>When set to any other modes,<wbr/> the camera device's auto white balance
2048routine is disabled.<wbr/> The camera device uses each particular illumination
2049target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002050 </td>
2051 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002052
2053
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002054 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2055 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002056
2057
2058 <tr class="entry" id="controls_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002059 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002060 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002061 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002062 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002063 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002064 <span class="entry_type_container">x</span>
2065
2066 <span class="entry_type_array">
2067 5 x area_count
2068 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002069 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002070
2071
2072 </td> <!-- entry_type -->
2073
2074 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002075 <p>List of areas to use for illuminant
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002076estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002077 </td>
2078
2079 <td class="entry_units">
2080 </td>
2081
2082 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002083 <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 -08002084 </td>
2085
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002086 <td class="entry_tags">
2087 <ul class="entry_tags">
2088 <li><a href="#tag_BC">BC</a></li>
2089 </ul>
2090 </td>
2091
2092 </tr>
2093 <tr class="entries_header">
2094 <th class="th_details" colspan="5">Details</th>
2095 </tr>
2096 <tr class="entry_cont">
2097 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002098 <p>Only used in AUTO mode.<wbr/></p>
2099<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002100xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08002101specified coordinates.<wbr/></p>
2102<p>The coordinate system is based on the active pixel array,<wbr/>
2103with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002104(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
2105<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 -08002106bottom-right pixel in the active pixel array.<wbr/> The weight
2107should be nonnegative.<wbr/></p>
2108<p>If all regions have 0 weight,<wbr/> then no specific metering area
2109needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002110outside 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 -08002111should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002112used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002113 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002114 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002115
2116
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002117 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2118 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002119
2120
2121 <tr class="entry" id="controls_android.control.captureIntent">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002122 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002123 android.<wbr/>control.<wbr/>capture<wbr/>Intent
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002124 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002125 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002126 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002127
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002128 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002129
2130 <ul class="entry_type_enum">
2131 <li>
2132 <span class="entry_type_enum_name">CUSTOM</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002133 <span class="entry_type_enum_notes"><p>This request doesn't fall into the other
2134categories.<wbr/> Default to preview-like
2135behavior.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002136 </li>
2137 <li>
2138 <span class="entry_type_enum_name">PREVIEW</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002139 <span class="entry_type_enum_notes"><p>This request is for a preview-like usecase.<wbr/> The
2140precapture trigger may be used to start off a metering
2141w/<wbr/>flash sequence</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002142 </li>
2143 <li>
2144 <span class="entry_type_enum_name">STILL_CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002145 <span class="entry_type_enum_notes"><p>This request is for a still capture-type
2146usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002147 </li>
2148 <li>
2149 <span class="entry_type_enum_name">VIDEO_RECORD</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002150 <span class="entry_type_enum_notes"><p>This request is for a video recording
2151usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002152 </li>
2153 <li>
2154 <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002155 <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
2156image while recording video) usecase</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002157 </li>
2158 <li>
2159 <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002160 <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
2161application will stream full-resolution images and
2162reprocess one or several later for a final
2163capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002164 </li>
2165 </ul>
2166
2167 </td> <!-- entry_type -->
2168
2169 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08002170 <p>Information to the camera device 3A (auto-exposure,<wbr/>
2171auto-focus,<wbr/> auto-white balance) routines about the purpose
2172of this capture,<wbr/> to help the camera device to decide optimal 3A
2173strategy.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002174 </td>
2175
2176 <td class="entry_units">
2177 </td>
2178
2179 <td class="entry_range">
Zhijun Heea27bc32014-01-15 13:47:59 -08002180 <p>All must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002181 </td>
2182
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002183 <td class="entry_tags">
2184 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002185 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002186 </ul>
2187 </td>
2188
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002189 </tr>
2190 <tr class="entries_header">
2191 <th class="th_details" colspan="5">Details</th>
2192 </tr>
2193 <tr class="entry_cont">
2194 <td class="entry_details" colspan="5">
Zhijun Heea27bc32014-01-15 13:47:59 -08002195 <p>This control is only effective if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code>
2196and any 3A routine is active.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002197 </td>
2198 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002199
2200
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002201 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2202 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002203
2204
2205 <tr class="entry" id="controls_android.control.effectMode">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002206 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002207 android.<wbr/>control.<wbr/>effect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002208 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002209 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002210 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002211
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002212 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002213
2214 <ul class="entry_type_enum">
2215 <li>
2216 <span class="entry_type_enum_name">OFF</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002217 <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002218 </li>
2219 <li>
2220 <span class="entry_type_enum_name">MONO</span>
2221 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002222 <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
2223a single color.<wbr/> This will typically be grayscale.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002224 </li>
2225 <li>
2226 <span class="entry_type_enum_name">NEGATIVE</span>
2227 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002228 <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
2229are inverted.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002230 </li>
2231 <li>
2232 <span class="entry_type_enum_name">SOLARIZE</span>
2233 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002234 <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
2235image is wholly or partially reversed in
2236tone.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002237 </li>
2238 <li>
2239 <span class="entry_type_enum_name">SEPIA</span>
2240 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002241 <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
2242gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002243 </li>
2244 <li>
2245 <span class="entry_type_enum_name">POSTERIZE</span>
2246 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002247 <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
2248discrete regions of tone rather than a continuous
2249gradient of tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002250 </li>
2251 <li>
2252 <span class="entry_type_enum_name">WHITEBOARD</span>
2253 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002254 <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
2255as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002256 </li>
2257 <li>
2258 <span class="entry_type_enum_name">BLACKBOARD</span>
2259 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002260 <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
2261as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002262 </li>
2263 <li>
2264 <span class="entry_type_enum_name">AQUA</span>
2265 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002266 <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 -08002267 </li>
2268 </ul>
2269
2270 </td> <!-- entry_type -->
2271
2272 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002273 <p>A special color effect to apply.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002274 </td>
2275
2276 <td class="entry_units">
2277 </td>
2278
2279 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002280 <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002281 </td>
2282
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002283 <td class="entry_tags">
2284 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002285 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002286 </ul>
2287 </td>
2288
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002289 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002290 <tr class="entries_header">
2291 <th class="th_details" colspan="5">Details</th>
2292 </tr>
2293 <tr class="entry_cont">
2294 <td class="entry_details" colspan="5">
2295 <p>When this mode is set,<wbr/> a color effect will be applied
2296to images produced by the camera device.<wbr/> The interpretation
2297and implementation of these color effects is left to the
2298implementor of the camera device,<wbr/> and should not be
2299depended on to be consistent (or present) across all
2300devices.<wbr/></p>
2301<p>A color effect will only be applied if
2302<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2303 </td>
2304 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002305
2306
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002307 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2308 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002309
2310
2311 <tr class="entry" id="controls_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002312 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002313 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002314 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002315 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002316 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002317
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002318 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002319
2320 <ul class="entry_type_enum">
2321 <li>
2322 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002323 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
2324routines are disabled,<wbr/> no other settings in
2325android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002326 </li>
2327 <li>
2328 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002329 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
2330Manual control of capture parameters is disabled.<wbr/> All
2331controls in android.<wbr/>control.<wbr/>* besides sceneMode take
2332effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002333 </li>
2334 <li>
2335 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002336 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
2337control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
2338controls; the HAL must ignore those settings while
2339USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
2340scene mode).<wbr/> Other control entries are still active.<wbr/>
2341This setting can only be used if availableSceneModes !=
2342UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002343 </li>
2344 </ul>
2345
2346 </td> <!-- entry_type -->
2347
2348 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002349 <p>Overall mode of 3A control
2350routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002351 </td>
2352
2353 <td class="entry_units">
2354 </td>
2355
2356 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002357 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002358 </td>
2359
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002360 <td class="entry_tags">
2361 <ul class="entry_tags">
2362 <li><a href="#tag_BC">BC</a></li>
2363 </ul>
2364 </td>
2365
2366 </tr>
2367 <tr class="entries_header">
2368 <th class="th_details" colspan="5">Details</th>
2369 </tr>
2370 <tr class="entry_cont">
2371 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002372 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002373by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08002374capture parameters itself.<wbr/></p>
2375<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002376android.<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 -08002377<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002378android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08002379one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002380as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002381<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 -08002382 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002383 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002384
2385
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002386 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2387 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002388
2389
2390 <tr class="entry" id="controls_android.control.sceneMode">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002391 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002392 android.<wbr/>control.<wbr/>scene<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002393 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002394 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002395 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002396
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002397 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002398
2399 <ul class="entry_type_enum">
2400 <li>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002401 <span class="entry_type_enum_name">DISABLED</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002402 <span class="entry_type_enum_value">0</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002403 <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 -08002404 </li>
2405 <li>
2406 <span class="entry_type_enum_name">FACE_PRIORITY</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002407 <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
2408detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
2409auto-exposure routines.<wbr/> If face detection statistics are
2410disabled (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/>
2411this should still operate correctly (but will not return
2412face detection statistics to the framework).<wbr/></p>
2413<p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2414<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and android.<wbr/>control.<wbr/>af<wbr/>Mode
2415remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002416 </li>
2417 <li>
2418 <span class="entry_type_enum_name">ACTION</span>
2419 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002420 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/>
2421Similar to SPORTS.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002422 </li>
2423 <li>
2424 <span class="entry_type_enum_name">PORTRAIT</span>
2425 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002426 <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002427 </li>
2428 <li>
2429 <span class="entry_type_enum_name">LANDSCAPE</span>
2430 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002431 <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002432 </li>
2433 <li>
2434 <span class="entry_type_enum_name">NIGHT</span>
2435 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002436 <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002437 </li>
2438 <li>
2439 <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
2440 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002441 <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
2442settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002443 </li>
2444 <li>
2445 <span class="entry_type_enum_name">THEATRE</span>
2446 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002447 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
2448remain off.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002449 </li>
2450 <li>
2451 <span class="entry_type_enum_name">BEACH</span>
2452 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002453 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002454 </li>
2455 <li>
2456 <span class="entry_type_enum_name">SNOW</span>
2457 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002458 <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 -08002459 </li>
2460 <li>
2461 <span class="entry_type_enum_name">SUNSET</span>
2462 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002463 <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002464 </li>
2465 <li>
2466 <span class="entry_type_enum_name">STEADYPHOTO</span>
2467 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002468 <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
2469device motion (for example: due to hand shake).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002470 </li>
2471 <li>
2472 <span class="entry_type_enum_name">FIREWORKS</span>
2473 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002474 <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002475 </li>
2476 <li>
2477 <span class="entry_type_enum_name">SPORTS</span>
2478 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002479 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/>
2480Similar to ACTION.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002481 </li>
2482 <li>
2483 <span class="entry_type_enum_name">PARTY</span>
2484 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002485 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
2486people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002487 </li>
2488 <li>
2489 <span class="entry_type_enum_name">CANDLELIGHT</span>
2490 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002491 <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
2492is a flame.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002493 </li>
2494 <li>
2495 <span class="entry_type_enum_name">BARCODE</span>
2496 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002497 <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
2498for use by camera applications that wish to read the
2499barcode value.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002500 </li>
2501 </ul>
2502
2503 </td> <!-- entry_type -->
2504
2505 <td class="entry_description">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002506 <p>A camera mode optimized for conditions typical in a particular
2507capture setting.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002508 </td>
2509
2510 <td class="entry_units">
2511 </td>
2512
2513 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002514 <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 -08002515 </td>
2516
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002517 <td class="entry_tags">
2518 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002519 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002520 </ul>
2521 </td>
2522
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002523 </tr>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002524 <tr class="entries_header">
2525 <th class="th_details" colspan="5">Details</th>
2526 </tr>
2527 <tr class="entry_cont">
2528 <td class="entry_details" colspan="5">
2529 <p>This is the mode that that is active when
2530<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/>
2531these modes will disable <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2532<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>
2533<p>The interpretation and implementation of these scene modes is left
2534to the implementor of the camera device.<wbr/> Their behavior will not be
2535consistent across all devices,<wbr/> and any given device may only implement
2536a subset of these modes.<wbr/></p>
2537 </td>
2538 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002539
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002540 <tr class="entries_header">
2541 <th class="th_details" colspan="5">HAL Implementation Details</th>
2542 </tr>
2543 <tr class="entry_cont">
2544 <td class="entry_details" colspan="5">
2545 <p>HAL implementations that include scene modes are expected to provide
2546the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2547<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
2548<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
2549 </td>
2550 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002551
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002552 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2553 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002554
2555
2556 <tr class="entry" id="controls_android.control.videoStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002557 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002558 android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002559 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002560 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002561 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002562
Igor Murashkinb8dc8812013-07-17 16:29:34 -07002563 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002564
2565 <ul class="entry_type_enum">
2566 <li>
2567 <span class="entry_type_enum_name">OFF</span>
2568 </li>
2569 <li>
2570 <span class="entry_type_enum_name">ON</span>
2571 </li>
2572 </ul>
2573
2574 </td> <!-- entry_type -->
2575
2576 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002577 <p>Whether video stabilization is
2578active</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002579 </td>
2580
2581 <td class="entry_units">
2582 </td>
2583
2584 <td class="entry_range">
2585 </td>
2586
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002587 <td class="entry_tags">
2588 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002589 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002590 </ul>
2591 </td>
2592
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002593 </tr>
2594 <tr class="entries_header">
2595 <th class="th_details" colspan="5">Details</th>
2596 </tr>
2597 <tr class="entry_cont">
2598 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002599 <p>If enabled,<wbr/> video stabilization can modify the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002600<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 -08002601stabilized</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002602 </td>
2603 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002604
2605
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002606 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2607 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002608
2609
2610
2611 <!-- end of kind -->
2612 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002613 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002614
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002615 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002616 <tr>
2617 <th class="th_name">Property Name</th>
2618 <th class="th_type">Type</th>
2619 <th class="th_description">Description</th>
2620 <th class="th_units">Units</th>
2621 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002622 <th class="th_tags">Tags</th>
2623 </tr>
2624 </thead>
2625
2626 <tbody>
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637 <tr class="entry" id="static_android.control.aeAvailableAntibandingModes">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002638 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002639 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002640 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002641 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002642 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002643 <span class="entry_type_container">x</span>
2644
2645 <span class="entry_type_array">
2646 n
2647 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002648 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002649 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002650
2651
2652 </td> <!-- entry_type -->
2653
2654 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002655 <p>The set of auto-exposure antibanding modes that are
2656supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002657 </td>
2658
2659 <td class="entry_units">
2660 </td>
2661
2662 <td class="entry_range">
2663 </td>
2664
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002665 <td class="entry_tags">
2666 </td>
2667
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002668 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002669 <tr class="entries_header">
2670 <th class="th_details" colspan="5">Details</th>
2671 </tr>
2672 <tr class="entry_cont">
2673 <td class="entry_details" colspan="5">
2674 <p>Not all of the auto-exposure anti-banding modes may be
2675supported by a given camera device.<wbr/> This field lists the
2676valid anti-banding modes that the application may request
2677for this camera device; they must include AUTO.<wbr/></p>
2678 </td>
2679 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002680
2681
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002682 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2683 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002684
2685
2686 <tr class="entry" id="static_android.control.aeAvailableModes">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002687 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002688 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002689 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002690 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002691 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002692 <span class="entry_type_container">x</span>
2693
2694 <span class="entry_type_array">
2695 n
2696 </span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002697 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002698 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002699
2700
2701 </td> <!-- entry_type -->
2702
2703 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002704 <p>The set of auto-exposure modes that are supported by this
2705camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002706 </td>
2707
2708 <td class="entry_units">
2709 </td>
2710
2711 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002712 </td>
2713
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002714 <td class="entry_tags">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002715 <ul class="entry_tags">
2716 <li><a href="#tag_BC">BC</a></li>
2717 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002718 </td>
2719
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002720 </tr>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002721 <tr class="entries_header">
2722 <th class="th_details" colspan="5">Details</th>
2723 </tr>
2724 <tr class="entry_cont">
2725 <td class="entry_details" colspan="5">
2726 <p>Not all the auto-exposure modes may be supported by a
2727given camera device,<wbr/> especially if no flash unit is
2728available.<wbr/> This entry lists the valid modes for
2729<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> for this camera device.<wbr/></p>
2730<p>All camera devices support ON,<wbr/> and all camera devices with
2731flash units support ON_<wbr/>AUTO_<wbr/>FLASH and
2732ON_<wbr/>ALWAYS_<wbr/>FLASH.<wbr/></p>
2733<p>Full-capability camera devices always support OFF mode,<wbr/>
2734which enables application control of camera exposure time,<wbr/>
2735sensitivity,<wbr/> and frame duration.<wbr/></p>
2736 </td>
2737 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002738
2739
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002740 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2741 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002742
2743
2744 <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002745 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002746 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002747 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002748 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002749 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002750 <span class="entry_type_container">x</span>
2751
2752 <span class="entry_type_array">
2753 2 x n
2754 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002755 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002756 <div class="entry_type_notes">list of pairs of frame rates</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002757
2758
2759 </td> <!-- entry_type -->
2760
2761 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002762 <p>List of frame rate ranges supported by the
2763AE algorithm/<wbr/>hardware</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002764 </td>
2765
2766 <td class="entry_units">
2767 </td>
2768
2769 <td class="entry_range">
2770 </td>
2771
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002772 <td class="entry_tags">
2773 </td>
2774
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002775 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002776
2777
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002778 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2779 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002780
2781
2782 <tr class="entry" id="static_android.control.aeCompensationRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002783 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002784 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002785 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002786 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002787 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002788 <span class="entry_type_container">x</span>
2789
2790 <span class="entry_type_array">
2791 2
2792 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002793 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002794
2795
2796 </td> <!-- entry_type -->
2797
2798 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002799 <p>Maximum and minimum exposure compensation
2800setting,<wbr/> in counts of
2801android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step<wbr/>Size</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002802 </td>
2803
2804 <td class="entry_units">
2805 </td>
2806
2807 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002808 <p>At least (-2,<wbr/>2)/<wbr/>(exp compensation step
2809size)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002810 </td>
2811
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002812 <td class="entry_tags">
2813 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002814 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002815 </ul>
2816 </td>
2817
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002818 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002819
2820
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002821 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2822 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002823
2824
2825 <tr class="entry" id="static_android.control.aeCompensationStep">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002826 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002827 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002828 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002829 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002830 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002831
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002832 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002833
2834
2835 </td> <!-- entry_type -->
2836
2837 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002838 <p>Smallest step by which exposure compensation
2839can be changed</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002840 </td>
2841
2842 <td class="entry_units">
2843 </td>
2844
2845 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002846 <p>&lt;= 1/<wbr/>2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002847 </td>
2848
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002849 <td class="entry_tags">
2850 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002851 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002852 </ul>
2853 </td>
2854
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002855 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002856
2857
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002858 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2859 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002860
2861
2862 <tr class="entry" id="static_android.control.afAvailableModes">
Zhijun Hef163fa92014-01-14 09:59:04 -08002863 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002864 android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002865 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002866 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002867 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002868 <span class="entry_type_container">x</span>
2869
2870 <span class="entry_type_array">
2871 n
2872 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002873 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002874 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002875
2876
2877 </td> <!-- entry_type -->
2878
2879 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002880 <p>List of AF modes that can be
Zhijun Hef163fa92014-01-14 09:59:04 -08002881selected with <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002882 </td>
2883
2884 <td class="entry_units">
2885 </td>
2886
2887 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002888 </td>
2889
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002890 <td class="entry_tags">
2891 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002892 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002893 </ul>
2894 </td>
2895
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002896 </tr>
Zhijun Hef163fa92014-01-14 09:59:04 -08002897 <tr class="entries_header">
2898 <th class="th_details" colspan="5">Details</th>
2899 </tr>
2900 <tr class="entry_cont">
2901 <td class="entry_details" colspan="5">
2902 <p>Not all the auto-focus modes may be supported by a
2903given camera device.<wbr/> This entry lists the valid modes for
2904<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> for this camera device.<wbr/></p>
2905<p>All camera devices will support OFF mode,<wbr/> and all camera devices with
2906adjustable 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>)
2907will support AUTO mode.<wbr/></p>
2908 </td>
2909 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002910
2911
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002912 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2913 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002914
2915
2916 <tr class="entry" id="static_android.control.availableEffects">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002917 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002918 android.<wbr/>control.<wbr/>available<wbr/>Effects
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002919 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002920 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002921 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002922 <span class="entry_type_container">x</span>
2923
2924 <span class="entry_type_array">
2925 n
2926 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002927 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002928 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>effect<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002929
2930
2931 </td> <!-- entry_type -->
2932
2933 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002934 <p>List containing the subset of color effects
2935specified in <a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a> that is supported by
2936this device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002937 </td>
2938
2939 <td class="entry_units">
2940 </td>
2941
2942 <td class="entry_range">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002943 <p>Any subset of enums from those specified in
2944<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 -08002945 </td>
2946
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002947 <td class="entry_tags">
2948 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002949 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002950 </ul>
2951 </td>
2952
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002953 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002954 <tr class="entries_header">
2955 <th class="th_details" colspan="5">Details</th>
2956 </tr>
2957 <tr class="entry_cont">
2958 <td class="entry_details" colspan="5">
2959 <p>This list contains the color effect modes that can be applied to
2960images produced by the camera device.<wbr/> Only modes that have
2961been fully implemented for the current device may be included here.<wbr/>
2962Implementations are not expected to be consistent across all devices.<wbr/>
2963If no color effect modes are available for a device,<wbr/> this should
2964simply be set to OFF.<wbr/></p>
2965<p>A color effect will only be applied if
2966<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2967 </td>
2968 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002969
2970
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002971 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2972 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002973
2974
2975 <tr class="entry" id="static_android.control.availableSceneModes">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002976 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002977 android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002978 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002979 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002980 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002981 <span class="entry_type_container">x</span>
2982
2983 <span class="entry_type_array">
2984 n
2985 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002986 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002987 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>scene<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002988
2989
2990 </td> <!-- entry_type -->
2991
2992 <td class="entry_description">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002993 <p>List containing a subset of scene modes
2994specified in <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002995 </td>
2996
2997 <td class="entry_units">
2998 </td>
2999
3000 <td class="entry_range">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003001 <p>Any subset of the enums specified in android.<wbr/>control.<wbr/>scene<wbr/>Mode
3002not including DISABLED,<wbr/> or solely DISABLED if no
3003scene modes are available.<wbr/> FACE_<wbr/>PRIORITY must be included
3004if 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 -08003005 </td>
3006
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003007 <td class="entry_tags">
3008 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003009 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003010 </ul>
3011 </td>
3012
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003013 </tr>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003014 <tr class="entries_header">
3015 <th class="th_details" colspan="5">Details</th>
3016 </tr>
3017 <tr class="entry_cont">
3018 <td class="entry_details" colspan="5">
3019 <p>This list contains scene modes that can be set for the camera device.<wbr/>
3020Only scene modes that have been fully implemented for the
3021camera device may be included here.<wbr/> Implementations are not expected
3022to be consistent across all devices.<wbr/> If no scene modes are supported
3023by the camera device,<wbr/> this will be set to <code>[DISABLED]</code>.<wbr/></p>
3024 </td>
3025 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003026
3027
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003028 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3029 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003030
3031
3032 <tr class="entry" id="static_android.control.availableVideoStabilizationModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003033 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003034 android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003035 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003036 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003037 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003038 <span class="entry_type_container">x</span>
3039
3040 <span class="entry_type_array">
3041 n
3042 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003043 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08003044 <div class="entry_type_notes">List of enums.<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003045
3046
3047 </td> <!-- entry_type -->
3048
3049 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003050 <p>List of video stabilization modes that can
3051be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003052 </td>
3053
3054 <td class="entry_units">
3055 </td>
3056
3057 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003058 <p>OFF must be included</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003059 </td>
3060
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003061 <td class="entry_tags">
3062 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003063 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003064 </ul>
3065 </td>
3066
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003067 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003068
3069
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003070 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3071 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003072
3073
3074 <tr class="entry" id="static_android.control.awbAvailableModes">
Zhijun He7787f7f2014-01-14 16:30:31 -08003075 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003076 android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003077 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003078 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003079 <span class="entry_type_name">byte</span>
Alex Raya4251d92013-04-30 16:43:44 -07003080 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003081
Alex Raya4251d92013-04-30 16:43:44 -07003082 <span class="entry_type_array">
3083 n
3084 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003085 <span class="entry_type_visibility"> [public]</span>
Zhijun He7787f7f2014-01-14 16:30:31 -08003086 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003087
3088
3089 </td> <!-- entry_type -->
3090
3091 <td class="entry_description">
Zhijun He7787f7f2014-01-14 16:30:31 -08003092 <p>The set of auto-white-balance modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>)
3093that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003094 </td>
3095
3096 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003097 </td>
3098
3099 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003100 </td>
3101
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003102 <td class="entry_tags">
3103 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003104 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003105 </ul>
3106 </td>
3107
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003108 </tr>
Zhijun He7787f7f2014-01-14 16:30:31 -08003109 <tr class="entries_header">
3110 <th class="th_details" colspan="5">Details</th>
3111 </tr>
3112 <tr class="entry_cont">
3113 <td class="entry_details" colspan="5">
3114 <p>Not all the auto-white-balance modes may be supported by a
3115given camera device.<wbr/> This entry lists the valid modes for
3116<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> for this camera device.<wbr/></p>
3117<p>All camera devices will support ON mode.<wbr/></p>
3118<p>Full-capability camera devices will always support OFF mode,<wbr/>
3119which enables application control of white balance,<wbr/> by using
3120<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>
3121 </td>
3122 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003123
3124
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003125 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3126 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003127
3128
3129 <tr class="entry" id="static_android.control.maxRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003130 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003131 android.<wbr/>control.<wbr/>max<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003132 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003133 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003134 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003135
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003136 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003137
3138
3139 </td> <!-- entry_type -->
3140
3141 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003142 <p>For AE,<wbr/> AWB,<wbr/> and AF,<wbr/> how many individual
3143regions can be listed for metering?</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003144 </td>
3145
3146 <td class="entry_units">
3147 </td>
3148
3149 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08003150 <p>&gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003151 </td>
3152
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003153 <td class="entry_tags">
3154 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003155 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003156 </ul>
3157 </td>
3158
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003159 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003160
3161
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003162 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3163 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003164
3165
3166 <tr class="entry" id="static_android.control.sceneModeOverrides">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003167 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003168 android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003169 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003170 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003171 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003172 <span class="entry_type_container">x</span>
3173
3174 <span class="entry_type_array">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003175 3 x length(availableSceneModes)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003176 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003177 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003178
3179
3180 </td> <!-- entry_type -->
3181
3182 <td class="entry_description">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003183 <p>Ordered list of auto-exposure,<wbr/> auto-white balance,<wbr/> and auto-focus
3184settings to use with each available scene mode.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003185 </td>
3186
3187 <td class="entry_units">
3188 </td>
3189
3190 <td class="entry_range">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003191 <p>For each available scene mode,<wbr/> the list must contain three
3192entries containing the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3193<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
3194by the camera device.<wbr/> The entry order is <code>(aeMode,<wbr/> awbMode,<wbr/> afMode)</code>
3195where aeMode has the lowest index position.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003196 </td>
3197
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003198 <td class="entry_tags">
3199 <ul class="entry_tags">
3200 <li><a href="#tag_BC">BC</a></li>
3201 </ul>
3202 </td>
3203
3204 </tr>
3205 <tr class="entries_header">
3206 <th class="th_details" colspan="5">Details</th>
3207 </tr>
3208 <tr class="entry_cont">
3209 <td class="entry_details" colspan="5">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003210 <p>When a scene mode is enabled,<wbr/> the camera device is expected
3211to 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/>
3212and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> with its preferred settings for
3213that scene mode.<wbr/></p>
3214<p>The order of this list matches that of availableSceneModes,<wbr/>
3215with 3 entries for each mode.<wbr/> The overrides listed
3216for FACE_<wbr/>PRIORITY are ignored,<wbr/> since for that
3217mode the application-set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3218<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
3219used instead,<wbr/> matching the behavior when android.<wbr/>control.<wbr/>mode
3220is set to AUTO.<wbr/> It is recommended that the FACE_<wbr/>PRIORITY
3221overrides should be set to 0.<wbr/></p>
3222<p>For example,<wbr/> if availableSceneModes contains
3223<code>(FACE_<wbr/>PRIORITY,<wbr/> ACTION,<wbr/> NIGHT)</code>,<wbr/> then the camera framework
3224expects sceneModeOverrides to have 9 entries formatted like:
3225<code>(0,<wbr/> 0,<wbr/> 0,<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> AUTO,<wbr/> CONTINUOUS_<wbr/>PICTURE,<wbr/>
3226ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> INCANDESCENT,<wbr/> AUTO)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003227 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003228 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003229
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003230 <tr class="entries_header">
3231 <th class="th_details" colspan="5">HAL Implementation Details</th>
3232 </tr>
3233 <tr class="entry_cont">
3234 <td class="entry_details" colspan="5">
3235 <p>To maintain backward compatibility,<wbr/> this list will be made available
3236in the static metadata of the camera service.<wbr/> The camera service will
3237use these values to set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3238<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
3239mode other than FACE_<wbr/>PRIORITY.<wbr/></p>
3240 </td>
3241 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003242
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003243 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3244 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003245
3246
3247
3248 <!-- end of kind -->
3249 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003250 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003251
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003252 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003253 <tr>
3254 <th class="th_name">Property Name</th>
3255 <th class="th_type">Type</th>
3256 <th class="th_description">Description</th>
3257 <th class="th_units">Units</th>
3258 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003259 <th class="th_tags">Tags</th>
3260 </tr>
3261 </thead>
3262
3263 <tbody>
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274 <tr class="entry" id="dynamic_android.control.aePrecaptureId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003275 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003276 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003277 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003278 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003279 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003280
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003281 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003282
3283
3284 </td> <!-- entry_type -->
3285
3286 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003287 <p>The ID sent with the latest
3288CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003289 </td>
3290
3291 <td class="entry_units">
3292 </td>
3293
3294 <td class="entry_range">
3295 </td>
3296
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003297 <td class="entry_tags">
3298 </td>
3299
3300 </tr>
3301 <tr class="entries_header">
3302 <th class="th_details" colspan="5">Details</th>
3303 </tr>
3304 <tr class="entry_cont">
3305 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003306 <p>Must be 0 if no
3307CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING trigger received yet
3308by HAL.<wbr/> Always updated even if AE algorithm ignores the
3309trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003310 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003311 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003312
3313
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003314 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3315 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003316
3317
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003318 <tr class="entry" id="dynamic_android.control.aeMode">
3319 <td class="entry_name" rowspan="3">
3320 android.<wbr/>control.<wbr/>ae<wbr/>Mode
3321 </td>
3322 <td class="entry_type">
3323 <span class="entry_type_name entry_type_name_enum">byte</span>
3324
3325 <span class="entry_type_visibility"> [public]</span>
3326
3327 <ul class="entry_type_enum">
3328 <li>
3329 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003330 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
3331the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3332<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
3333<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
3334device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
3335a flash unit for this camera device.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003336 </li>
3337 <li>
3338 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003339 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
3340with no flash control.<wbr/> The application's values for
3341<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3342<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3343<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
3344application has control over the various
3345android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003346 </li>
3347 <li>
3348 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003349 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3350the camera's flash unit,<wbr/> firing it in low-light
3351conditions.<wbr/> The flash may be fired during a
3352precapture sequence (triggered by
3353<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
3354for captures for which the
3355<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3356STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003357 </li>
3358 <li>
3359 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003360 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3361the camera's flash unit,<wbr/> always firing it for still
3362captures.<wbr/> The flash may be fired during a precapture
3363sequence (triggered by
3364<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
3365be fired for captures for which the
3366<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3367STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003368 </li>
3369 <li>
3370 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003371 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
3372reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
3373a red eye reduction flash will fire during the
3374precapture sequence.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003375 </li>
3376 </ul>
3377
3378 </td> <!-- entry_type -->
3379
3380 <td class="entry_description">
3381 <p>The desired mode for the camera device's
3382auto-exposure routine.<wbr/></p>
3383 </td>
3384
3385 <td class="entry_units">
3386 </td>
3387
3388 <td class="entry_range">
3389 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
3390 </td>
3391
3392 <td class="entry_tags">
3393 <ul class="entry_tags">
3394 <li><a href="#tag_BC">BC</a></li>
3395 </ul>
3396 </td>
3397
3398 </tr>
3399 <tr class="entries_header">
3400 <th class="th_details" colspan="5">Details</th>
3401 </tr>
3402 <tr class="entry_cont">
3403 <td class="entry_details" colspan="5">
3404 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
3405AUTO.<wbr/></p>
3406<p>When set to any of the ON modes,<wbr/> the camera device's
3407auto-exposure routine is enabled,<wbr/> overriding the
3408application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
3409and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3410<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3411<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
3412is selected,<wbr/> the camera device's flash unit controls are
3413also overridden.<wbr/></p>
3414<p>The FLASH modes are only available if the camera device
3415has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
3416<p>If flash TORCH mode is desired,<wbr/> this field must be set to
3417ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
3418<p>When set to any of the ON modes,<wbr/> the values chosen by the
3419camera device auto-exposure routine for the overridden
3420fields for a given capture will be available in its
3421CaptureResult.<wbr/></p>
3422 </td>
3423 </tr>
3424
3425
3426 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3427 <!-- end of entry -->
3428
3429
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003430 <tr class="entry" id="dynamic_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003431 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003432 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003433 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003434 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003435 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003436 <span class="entry_type_container">x</span>
3437
3438 <span class="entry_type_array">
3439 5 x area_count
3440 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003441 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003442
3443
3444 </td> <!-- entry_type -->
3445
3446 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003447 <p>List of areas to use for
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003448metering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003449 </td>
3450
3451 <td class="entry_units">
3452 </td>
3453
3454 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003455 <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 -08003456 </td>
3457
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003458 <td class="entry_tags">
3459 <ul class="entry_tags">
3460 <li><a href="#tag_BC">BC</a></li>
3461 </ul>
3462 </td>
3463
3464 </tr>
3465 <tr class="entries_header">
3466 <th class="th_details" colspan="5">Details</th>
3467 </tr>
3468 <tr class="entry_cont">
3469 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003470 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003471xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08003472specified coordinates.<wbr/></p>
3473<p>The coordinate system is based on the active pixel array,<wbr/>
3474with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003475(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3476<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 -08003477bottom-right pixel in the active pixel array.<wbr/> The weight
3478should be nonnegative.<wbr/></p>
3479<p>If all regions have 0 weight,<wbr/> then no specific metering area
3480needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003481outside 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 -08003482should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003483used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003484 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003485 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003486
3487
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003488 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3489 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003490
3491
3492 <tr class="entry" id="dynamic_android.control.aeState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003493 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003494 android.<wbr/>control.<wbr/>ae<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003495 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003496 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003497 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003498
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003499 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003500
3501 <ul class="entry_type_enum">
3502 <li>
3503 <span class="entry_type_enum_name">INACTIVE</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003504 <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 -08003505this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003506 </li>
3507 <li>
3508 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003509 <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 -08003510for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003511 </li>
3512 <li>
3513 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003514 <span class="entry_type_enum_notes"><p>AE has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08003515current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003516 </li>
3517 <li>
3518 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003519 <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003520 </li>
3521 <li>
3522 <span class="entry_type_enum_name">FLASH_REQUIRED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003523 <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
3524needs to be fired for good quality still
Zhijun He92e698d2014-01-13 16:24:31 -08003525capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003526 </li>
3527 <li>
3528 <span class="entry_type_enum_name">PRECAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003529 <span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence
Zhijun He92e698d2014-01-13 16:24:31 -08003530(through the <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> START),<wbr/>
3531and is currently executing it.<wbr/> Once PRECAPTURE
Igor Murashkina10351a2014-01-15 17:05:22 -08003532completes,<wbr/> AE will transition to CONVERGED or
Zhijun He92e698d2014-01-13 16:24:31 -08003533FLASH_<wbr/>REQUIRED as appropriate.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003534 </li>
3535 </ul>
3536
3537 </td> <!-- entry_type -->
3538
3539 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003540 <p>Current state of AE algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003541 </td>
3542
3543 <td class="entry_units">
3544 </td>
3545
3546 <td class="entry_range">
3547 </td>
3548
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003549 <td class="entry_tags">
3550 </td>
3551
3552 </tr>
3553 <tr class="entries_header">
3554 <th class="th_details" colspan="5">Details</th>
3555 </tr>
3556 <tr class="entry_cont">
3557 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003558 <p>Switching between or enabling AE modes (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>) always
3559resets the AE state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3560or <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
3561the algorithm states to INACTIVE.<wbr/></p>
3562<p>The camera device can do several state transitions between two results,<wbr/> if it is
3563allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3564seen in a result.<wbr/></p>
3565<p>The state in the result is the state for this image (in sync with this image): if
3566AE state becomes CONVERGED,<wbr/> then the image data associated with this result should
3567be good to use.<wbr/></p>
3568<p>Below are state transition tables for different AE modes.<wbr/></p>
3569<table>
3570<thead>
3571<tr>
3572<th align="center">State</th>
3573<th align="center">Transition Cause</th>
3574<th align="center">New State</th>
3575<th align="center">Notes</th>
3576</tr>
3577</thead>
3578<tbody>
3579<tr>
3580<td align="center">INACTIVE</td>
3581<td align="center"></td>
3582<td align="center">INACTIVE</td>
3583<td align="center">Camera device auto exposure algorithm is disabled</td>
3584</tr>
3585</tbody>
3586</table>
3587<p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON_<wbr/>*:</p>
3588<table>
3589<thead>
3590<tr>
3591<th align="center">State</th>
3592<th align="center">Transition Cause</th>
3593<th align="center">New State</th>
3594<th align="center">Notes</th>
3595</tr>
3596</thead>
3597<tbody>
3598<tr>
3599<td align="center">INACTIVE</td>
3600<td align="center">Camera device initiates AE scan</td>
3601<td align="center">SEARCHING</td>
3602<td align="center">Values changing</td>
3603</tr>
3604<tr>
3605<td align="center">INACTIVE</td>
3606<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3607<td align="center">LOCKED</td>
3608<td align="center">Values locked</td>
3609</tr>
3610<tr>
3611<td align="center">SEARCHING</td>
3612<td align="center">Camera device finishes AE scan</td>
3613<td align="center">CONVERGED</td>
3614<td align="center">Good values,<wbr/> not changing</td>
3615</tr>
3616<tr>
3617<td align="center">SEARCHING</td>
3618<td align="center">Camera device finishes AE scan</td>
3619<td align="center">FLASH_<wbr/>REQUIRED</td>
3620<td align="center">Converged but too dark w/<wbr/>o flash</td>
3621</tr>
3622<tr>
3623<td align="center">SEARCHING</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">CONVERGED</td>
3630<td align="center">Camera device initiates AE scan</td>
3631<td align="center">SEARCHING</td>
3632<td align="center">Values changing</td>
3633</tr>
3634<tr>
3635<td align="center">CONVERGED</td>
3636<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3637<td align="center">LOCKED</td>
3638<td align="center">Values locked</td>
3639</tr>
3640<tr>
3641<td align="center">FLASH_<wbr/>REQUIRED</td>
3642<td align="center">Camera device initiates AE scan</td>
3643<td align="center">SEARCHING</td>
3644<td align="center">Values changing</td>
3645</tr>
3646<tr>
3647<td align="center">FLASH_<wbr/>REQUIRED</td>
3648<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3649<td align="center">LOCKED</td>
3650<td align="center">Values locked</td>
3651</tr>
3652<tr>
3653<td align="center">LOCKED</td>
3654<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3655<td align="center">SEARCHING</td>
3656<td align="center">Values not good after unlock</td>
3657</tr>
3658<tr>
3659<td align="center">LOCKED</td>
3660<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3661<td align="center">CONVERGED</td>
3662<td align="center">Values good after unlock</td>
3663</tr>
3664<tr>
3665<td align="center">LOCKED</td>
3666<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3667<td align="center">FLASH_<wbr/>REQUIRED</td>
3668<td align="center">Exposure good,<wbr/> but too dark</td>
3669</tr>
3670<tr>
3671<td align="center">PRECAPTURE</td>
3672<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3673<td align="center">CONVERGED</td>
3674<td align="center">Ready for high-quality capture</td>
3675</tr>
3676<tr>
3677<td align="center">PRECAPTURE</td>
3678<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3679<td align="center">LOCKED</td>
3680<td align="center">Ready for high-quality capture</td>
3681</tr>
3682<tr>
3683<td align="center">Any state</td>
3684<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
3685<td align="center">PRECAPTURE</td>
3686<td align="center">Start AE precapture metering sequence</td>
3687</tr>
3688</tbody>
3689</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003690 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003691 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003692
3693
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003694 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3695 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003696
3697
3698 <tr class="entry" id="dynamic_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003699 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003700 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003701 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003702 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003703 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003704
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003705 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003706
3707 <ul class="entry_type_enum">
3708 <li>
3709 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003710 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
3711<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
3712application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003713 </li>
3714 <li>
3715 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003716 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
3717<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
3718is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
3719the autofocus trigger action is called.<wbr/> When that trigger
3720is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
3721the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
3722<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
3723and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003724 </li>
3725 <li>
3726 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003727 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
3728autofocus trigger action is called.<wbr/></p>
3729<p>When that trigger is activated,<wbr/> AF must transition to
3730ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
3731NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
3732position to default,<wbr/> and sets the AF state to
3733INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003734 </li>
3735 <li>
3736 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003737 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3738position continually to attempt to provide a
3739constantly-in-focus image stream.<wbr/></p>
3740<p>The focusing behavior should be suitable for good quality
3741video recording; typically this means slower focus
3742movement and no overshoots.<wbr/> When the AF trigger is not
3743involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
3744and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
3745states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
3746the algorithm should immediately transition into
3747AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3748lens position until a cancel AF trigger is received.<wbr/></p>
3749<p>Once cancel is received,<wbr/> the algorithm should transition
3750back to INACTIVE and resume passive scan.<wbr/> Note that this
3751behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
3752ongoing PASSIVE_<wbr/>SCAN must immediately be
3753canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003754 </li>
3755 <li>
3756 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003757 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3758position continually to attempt to provide a
3759constantly-in-focus image stream.<wbr/></p>
3760<p>The focusing behavior should be suitable for still image
3761capture; typically this means focusing as fast as
3762possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
3763algorithm should start in INACTIVE state,<wbr/> and then
3764transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
3765appropriate as it attempts to maintain focus.<wbr/> When the AF
3766trigger is activated,<wbr/> the algorithm should finish its
3767PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
3768AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3769lens position until a cancel AF trigger is received.<wbr/></p>
3770<p>When the AF cancel trigger is activated,<wbr/> the algorithm
3771should transition back to INACTIVE and then act as if it
3772has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003773 </li>
3774 <li>
3775 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003776 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
3777trigger is ignored,<wbr/> AF state should always be
3778INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003779 </li>
3780 </ul>
3781
3782 </td> <!-- entry_type -->
3783
3784 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003785 <p>Whether AF is currently enabled,<wbr/> and what
3786mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003787 </td>
3788
3789 <td class="entry_units">
3790 </td>
3791
3792 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08003793 <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 -08003794 </td>
3795
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003796 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003797 <ul class="entry_tags">
3798 <li><a href="#tag_BC">BC</a></li>
3799 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003800 </td>
3801
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003802 </tr>
3803 <tr class="entries_header">
3804 <th class="th_details" colspan="5">Details</th>
3805 </tr>
3806 <tr class="entry_cont">
3807 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003808 <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 -08003809<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
3810the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
3811in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003812 </td>
3813 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003814
3815
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003816 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3817 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003818
3819
3820 <tr class="entry" id="dynamic_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003821 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003822 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003823 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003824 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003825 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003826 <span class="entry_type_container">x</span>
3827
3828 <span class="entry_type_array">
3829 5 x area_count
3830 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003831 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003832
3833
3834 </td> <!-- entry_type -->
3835
3836 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003837 <p>List of areas to use for focus
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003838estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003839 </td>
3840
3841 <td class="entry_units">
3842 </td>
3843
3844 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003845 <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 -08003846 </td>
3847
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003848 <td class="entry_tags">
3849 <ul class="entry_tags">
3850 <li><a href="#tag_BC">BC</a></li>
3851 </ul>
3852 </td>
3853
3854 </tr>
3855 <tr class="entries_header">
3856 <th class="th_details" colspan="5">Details</th>
3857 </tr>
3858 <tr class="entry_cont">
3859 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003860 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003861xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08003862specified coordinates.<wbr/></p>
3863<p>The coordinate system is based on the active pixel array,<wbr/>
3864with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003865(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3866<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 -08003867bottom-right pixel in the active pixel array.<wbr/> The weight
3868should be nonnegative.<wbr/></p>
3869<p>If all regions have 0 weight,<wbr/> then no specific focus area
3870needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003871outside 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 -08003872should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003873used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003874 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003875 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003876
3877
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003878 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3879 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003880
3881
3882 <tr class="entry" id="dynamic_android.control.afState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003883 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003884 android.<wbr/>control.<wbr/>af<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003885 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003886 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003887 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003888
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003889 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003890
3891 <ul class="entry_type_enum">
3892 <li>
3893 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003894 <span class="entry_type_enum_notes"><p>AF off or has not yet tried to scan/<wbr/>been asked
3895to scan.<wbr/> When a camera device is opened,<wbr/> it starts in
3896this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003897 </li>
3898 <li>
3899 <span class="entry_type_enum_name">PASSIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003900 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF is
3901currently doing an AF scan initiated by a continuous
3902autofocus mode</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003903 </li>
3904 <li>
3905 <span class="entry_type_enum_name">PASSIVE_FOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003906 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF currently
3907believes it is in focus,<wbr/> but may restart scanning at
3908any time.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003909 </li>
3910 <li>
3911 <span class="entry_type_enum_name">ACTIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003912 <span class="entry_type_enum_notes"><p>if AUTO or MACRO modes are supported.<wbr/> AF is doing
3913an AF scan because it was triggered by AF
3914trigger</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003915 </li>
3916 <li>
3917 <span class="entry_type_enum_name">FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003918 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF
3919believes it is focused correctly and is
3920locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003921 </li>
3922 <li>
3923 <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003924 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF has
3925failed to focus successfully and is
3926locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003927 </li>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003928 <li>
3929 <span class="entry_type_enum_name">PASSIVE_UNFOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003930 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF finished a
3931passive scan without finding focus,<wbr/> and may restart
3932scanning at any time.<wbr/></p></span>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003933 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003934 </ul>
3935
3936 </td> <!-- entry_type -->
3937
3938 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003939 <p>Current state of AF algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003940 </td>
3941
3942 <td class="entry_units">
3943 </td>
3944
3945 <td class="entry_range">
3946 </td>
3947
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003948 <td class="entry_tags">
3949 </td>
3950
3951 </tr>
3952 <tr class="entries_header">
3953 <th class="th_details" colspan="5">Details</th>
3954 </tr>
3955 <tr class="entry_cont">
3956 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003957 <p>Switching between or enabling AF modes (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) always
3958resets the AF state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3959or <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
3960the algorithm states to INACTIVE.<wbr/></p>
3961<p>The camera device can do several state transitions between two results,<wbr/> if it is
3962allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3963seen in a result.<wbr/></p>
3964<p>The state in the result is the state for this image (in sync with this image): if
3965AF state becomes FOCUSED,<wbr/> then the image data associated with this result should
3966be sharp.<wbr/></p>
3967<p>Below are state transition tables for different AF modes.<wbr/></p>
3968<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>
3969<table>
3970<thead>
3971<tr>
3972<th align="center">State</th>
3973<th align="center">Transition Cause</th>
3974<th align="center">New State</th>
3975<th align="center">Notes</th>
3976</tr>
3977</thead>
3978<tbody>
3979<tr>
3980<td align="center">INACTIVE</td>
3981<td align="center"></td>
3982<td align="center">INACTIVE</td>
3983<td align="center">Never changes</td>
3984</tr>
3985</tbody>
3986</table>
3987<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>
3988<table>
3989<thead>
3990<tr>
3991<th align="center">State</th>
3992<th align="center">Transition Cause</th>
3993<th align="center">New State</th>
3994<th align="center">Notes</th>
3995</tr>
3996</thead>
3997<tbody>
3998<tr>
3999<td align="center">INACTIVE</td>
4000<td align="center">AF_<wbr/>TRIGGER</td>
4001<td align="center">ACTIVE_<wbr/>SCAN</td>
4002<td align="center">Start AF sweep,<wbr/> Lens now moving</td>
4003</tr>
4004<tr>
4005<td align="center">ACTIVE_<wbr/>SCAN</td>
4006<td align="center">AF sweep done</td>
4007<td align="center">FOCUSED_<wbr/>LOCKED</td>
4008<td align="center">Focused,<wbr/> Lens now locked</td>
4009</tr>
4010<tr>
4011<td align="center">ACTIVE_<wbr/>SCAN</td>
4012<td align="center">AF sweep done</td>
4013<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4014<td align="center">Not focused,<wbr/> Lens now locked</td>
4015</tr>
4016<tr>
4017<td align="center">ACTIVE_<wbr/>SCAN</td>
4018<td align="center">AF_<wbr/>CANCEL</td>
4019<td align="center">INACTIVE</td>
4020<td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
4021</tr>
4022<tr>
4023<td align="center">FOCUSED_<wbr/>LOCKED</td>
4024<td align="center">AF_<wbr/>CANCEL</td>
4025<td align="center">INACTIVE</td>
4026<td align="center">Cancel/<wbr/>reset AF</td>
4027</tr>
4028<tr>
4029<td align="center">FOCUSED_<wbr/>LOCKED</td>
4030<td align="center">AF_<wbr/>TRIGGER</td>
4031<td align="center">ACTIVE_<wbr/>SCAN</td>
4032<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4033</tr>
4034<tr>
4035<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4036<td align="center">AF_<wbr/>CANCEL</td>
4037<td align="center">INACTIVE</td>
4038<td align="center">Cancel/<wbr/>reset AF</td>
4039</tr>
4040<tr>
4041<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4042<td align="center">AF_<wbr/>TRIGGER</td>
4043<td align="center">ACTIVE_<wbr/>SCAN</td>
4044<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4045</tr>
4046<tr>
4047<td align="center">Any state</td>
4048<td align="center">Mode change</td>
4049<td align="center">INACTIVE</td>
4050<td align="center"></td>
4051</tr>
4052</tbody>
4053</table>
4054<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>
4055<table>
4056<thead>
4057<tr>
4058<th align="center">State</th>
4059<th align="center">Transition Cause</th>
4060<th align="center">New State</th>
4061<th align="center">Notes</th>
4062</tr>
4063</thead>
4064<tbody>
4065<tr>
4066<td align="center">INACTIVE</td>
4067<td align="center">Camera device initiates new scan</td>
4068<td align="center">PASSIVE_<wbr/>SCAN</td>
4069<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4070</tr>
4071<tr>
4072<td align="center">INACTIVE</td>
4073<td align="center">AF_<wbr/>TRIGGER</td>
4074<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4075<td align="center">AF state query,<wbr/> Lens now locked</td>
4076</tr>
4077<tr>
4078<td align="center">PASSIVE_<wbr/>SCAN</td>
4079<td align="center">Camera device completes current scan</td>
4080<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4081<td align="center">End AF scan,<wbr/> Lens now locked</td>
4082</tr>
4083<tr>
4084<td align="center">PASSIVE_<wbr/>SCAN</td>
4085<td align="center">Camera device fails current scan</td>
4086<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4087<td align="center">End AF scan,<wbr/> Lens now locked</td>
4088</tr>
4089<tr>
4090<td align="center">PASSIVE_<wbr/>SCAN</td>
4091<td align="center">AF_<wbr/>TRIGGER</td>
4092<td align="center">FOCUSED_<wbr/>LOCKED</td>
4093<td align="center">Immediate trans.<wbr/> If focus is good,<wbr/> Lens now locked</td>
4094</tr>
4095<tr>
4096<td align="center">PASSIVE_<wbr/>SCAN</td>
4097<td align="center">AF_<wbr/>TRIGGER</td>
4098<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4099<td align="center">Immediate trans.<wbr/> if focus is bad,<wbr/> Lens now locked</td>
4100</tr>
4101<tr>
4102<td align="center">PASSIVE_<wbr/>SCAN</td>
4103<td align="center">AF_<wbr/>CANCEL</td>
4104<td align="center">INACTIVE</td>
4105<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4106</tr>
4107<tr>
4108<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4109<td align="center">Camera device initiates new scan</td>
4110<td align="center">PASSIVE_<wbr/>SCAN</td>
4111<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4112</tr>
4113<tr>
4114<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4115<td align="center">Camera device initiates new scan</td>
4116<td align="center">PASSIVE_<wbr/>SCAN</td>
4117<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4118</tr>
4119<tr>
4120<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4121<td align="center">AF_<wbr/>TRIGGER</td>
4122<td align="center">FOCUSED_<wbr/>LOCKED</td>
4123<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4124</tr>
4125<tr>
4126<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4127<td align="center">AF_<wbr/>TRIGGER</td>
4128<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4129<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4130</tr>
4131<tr>
4132<td align="center">FOCUSED_<wbr/>LOCKED</td>
4133<td align="center">AF_<wbr/>TRIGGER</td>
4134<td align="center">FOCUSED_<wbr/>LOCKED</td>
4135<td align="center">No effect</td>
4136</tr>
4137<tr>
4138<td align="center">FOCUSED_<wbr/>LOCKED</td>
4139<td align="center">AF_<wbr/>CANCEL</td>
4140<td align="center">INACTIVE</td>
4141<td align="center">Restart AF scan</td>
4142</tr>
4143<tr>
4144<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4145<td align="center">AF_<wbr/>TRIGGER</td>
4146<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4147<td align="center">No effect</td>
4148</tr>
4149<tr>
4150<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4151<td align="center">AF_<wbr/>CANCEL</td>
4152<td align="center">INACTIVE</td>
4153<td align="center">Restart AF scan</td>
4154</tr>
4155</tbody>
4156</table>
4157<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>
4158<table>
4159<thead>
4160<tr>
4161<th align="center">State</th>
4162<th align="center">Transition Cause</th>
4163<th align="center">New State</th>
4164<th align="center">Notes</th>
4165</tr>
4166</thead>
4167<tbody>
4168<tr>
4169<td align="center">INACTIVE</td>
4170<td align="center">Camera device initiates new scan</td>
4171<td align="center">PASSIVE_<wbr/>SCAN</td>
4172<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4173</tr>
4174<tr>
4175<td align="center">INACTIVE</td>
4176<td align="center">AF_<wbr/>TRIGGER</td>
4177<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4178<td align="center">AF state query,<wbr/> Lens now locked</td>
4179</tr>
4180<tr>
4181<td align="center">PASSIVE_<wbr/>SCAN</td>
4182<td align="center">Camera device completes current scan</td>
4183<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4184<td align="center">End AF scan,<wbr/> Lens now locked</td>
4185</tr>
4186<tr>
4187<td align="center">PASSIVE_<wbr/>SCAN</td>
4188<td align="center">Camera device fails current scan</td>
4189<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4190<td align="center">End AF scan,<wbr/> Lens now locked</td>
4191</tr>
4192<tr>
4193<td align="center">PASSIVE_<wbr/>SCAN</td>
4194<td align="center">AF_<wbr/>TRIGGER</td>
4195<td align="center">FOCUSED_<wbr/>LOCKED</td>
4196<td align="center">Eventual trans.<wbr/> once focus good,<wbr/> Lens now locked</td>
4197</tr>
4198<tr>
4199<td align="center">PASSIVE_<wbr/>SCAN</td>
4200<td align="center">AF_<wbr/>TRIGGER</td>
4201<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4202<td align="center">Eventual trans.<wbr/> if cannot focus,<wbr/> Lens now locked</td>
4203</tr>
4204<tr>
4205<td align="center">PASSIVE_<wbr/>SCAN</td>
4206<td align="center">AF_<wbr/>CANCEL</td>
4207<td align="center">INACTIVE</td>
4208<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4209</tr>
4210<tr>
4211<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4212<td align="center">Camera device initiates new scan</td>
4213<td align="center">PASSIVE_<wbr/>SCAN</td>
4214<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4215</tr>
4216<tr>
4217<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4218<td align="center">Camera device initiates new scan</td>
4219<td align="center">PASSIVE_<wbr/>SCAN</td>
4220<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4221</tr>
4222<tr>
4223<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4224<td align="center">AF_<wbr/>TRIGGER</td>
4225<td align="center">FOCUSED_<wbr/>LOCKED</td>
4226<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4227</tr>
4228<tr>
4229<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4230<td align="center">AF_<wbr/>TRIGGER</td>
4231<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4232<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4233</tr>
4234<tr>
4235<td align="center">FOCUSED_<wbr/>LOCKED</td>
4236<td align="center">AF_<wbr/>TRIGGER</td>
4237<td align="center">FOCUSED_<wbr/>LOCKED</td>
4238<td align="center">No effect</td>
4239</tr>
4240<tr>
4241<td align="center">FOCUSED_<wbr/>LOCKED</td>
4242<td align="center">AF_<wbr/>CANCEL</td>
4243<td align="center">INACTIVE</td>
4244<td align="center">Restart AF scan</td>
4245</tr>
4246<tr>
4247<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4248<td align="center">AF_<wbr/>TRIGGER</td>
4249<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4250<td align="center">No effect</td>
4251</tr>
4252<tr>
4253<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4254<td align="center">AF_<wbr/>CANCEL</td>
4255<td align="center">INACTIVE</td>
4256<td align="center">Restart AF scan</td>
4257</tr>
4258</tbody>
4259</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004260 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004261 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004262
4263
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004264 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4265 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004266
4267
4268 <tr class="entry" id="dynamic_android.control.afTriggerId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004269 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004270 android.<wbr/>control.<wbr/>af<wbr/>Trigger<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004271 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004272 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004273 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004274
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004275 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004276
4277
4278 </td> <!-- entry_type -->
4279
4280 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004281 <p>The ID sent with the latest
4282CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004283 </td>
4284
4285 <td class="entry_units">
4286 </td>
4287
4288 <td class="entry_range">
4289 </td>
4290
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004291 <td class="entry_tags">
4292 </td>
4293
4294 </tr>
4295 <tr class="entries_header">
4296 <th class="th_details" colspan="5">Details</th>
4297 </tr>
4298 <tr class="entry_cont">
4299 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004300 <p>Must be 0 if no CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS trigger
4301received yet by HAL.<wbr/> Always updated even if AF algorithm
4302ignores the trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004303 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004304 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004305
4306
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004307 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4308 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004309
4310
4311 <tr class="entry" id="dynamic_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004312 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004313 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004314 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004315 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004316 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004317
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004318 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004319
4320 <ul class="entry_type_enum">
4321 <li>
4322 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004323 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4324the application-selected color transform matrix
4325(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
4326(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
4327device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004328 </li>
4329 <li>
4330 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004331 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
4332the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
4333and <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 -08004334 </li>
4335 <li>
4336 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004337 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4338the camera device uses incandescent light as the assumed scene
4339illumination for white balance.<wbr/> While the exact white balance
4340transforms are up to the camera device,<wbr/> they will approximately
4341match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004342 </li>
4343 <li>
4344 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004345 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4346the camera device uses fluorescent light as the assumed scene
4347illumination for white balance.<wbr/> While the exact white balance
4348transforms are up to the camera device,<wbr/> they will approximately
4349match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004350 </li>
4351 <li>
4352 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004353 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4354the camera device uses warm fluorescent light as the assumed scene
4355illumination for white balance.<wbr/> While the exact white balance
4356transforms are up to the camera device,<wbr/> they will approximately
4357match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004358 </li>
4359 <li>
4360 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004361 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4362the camera device uses daylight light as the assumed scene
4363illumination for white balance.<wbr/> While the exact white balance
4364transforms are up to the camera device,<wbr/> they will approximately
4365match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004366 </li>
4367 <li>
4368 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004369 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4370the camera device uses cloudy daylight light as the assumed scene
4371illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004372 </li>
4373 <li>
4374 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004375 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4376the camera device uses twilight light as the assumed scene
4377illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004378 </li>
4379 <li>
4380 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004381 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4382the camera device uses shade light as the assumed scene
4383illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004384 </li>
4385 </ul>
4386
4387 </td> <!-- entry_type -->
4388
4389 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004390 <p>Whether AWB is currently setting the color
4391transform fields,<wbr/> and what its illumination target
4392is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004393 </td>
4394
4395 <td class="entry_units">
4396 </td>
4397
4398 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08004399 <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 -08004400 </td>
4401
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004402 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004403 <ul class="entry_tags">
4404 <li><a href="#tag_BC">BC</a></li>
4405 <li><a href="#tag_AWB">AWB</a></li>
4406 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004407 </td>
4408
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004409 </tr>
4410 <tr class="entries_header">
4411 <th class="th_details" colspan="5">Details</th>
4412 </tr>
4413 <tr class="entry_cont">
4414 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08004415 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
4416<p>When set to the ON mode,<wbr/> the camera device's auto white balance
4417routine is enabled,<wbr/> overriding the application's selected
4418<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
4419<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4420<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
4421routine is disabled.<wbr/> The applicantion manually controls the white
4422balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
4423and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4424<p>When set to any other modes,<wbr/> the camera device's auto white balance
4425routine is disabled.<wbr/> The camera device uses each particular illumination
4426target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004427 </td>
4428 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004429
4430
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004431 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4432 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004433
4434
4435 <tr class="entry" id="dynamic_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004436 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004437 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004438 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004439 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004440 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004441 <span class="entry_type_container">x</span>
4442
4443 <span class="entry_type_array">
4444 5 x area_count
4445 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004446 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004447
4448
4449 </td> <!-- entry_type -->
4450
4451 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004452 <p>List of areas to use for illuminant
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004453estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004454 </td>
4455
4456 <td class="entry_units">
4457 </td>
4458
4459 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004460 <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 -08004461 </td>
4462
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004463 <td class="entry_tags">
4464 <ul class="entry_tags">
4465 <li><a href="#tag_BC">BC</a></li>
4466 </ul>
4467 </td>
4468
4469 </tr>
4470 <tr class="entries_header">
4471 <th class="th_details" colspan="5">Details</th>
4472 </tr>
4473 <tr class="entry_cont">
4474 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004475 <p>Only used in AUTO mode.<wbr/></p>
4476<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004477xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08004478specified coordinates.<wbr/></p>
4479<p>The coordinate system is based on the active pixel array,<wbr/>
4480with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004481(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
4482<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 -08004483bottom-right pixel in the active pixel array.<wbr/> The weight
4484should be nonnegative.<wbr/></p>
4485<p>If all regions have 0 weight,<wbr/> then no specific metering area
4486needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004487outside 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 -08004488should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004489used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004490 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004491 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004492
4493
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004494 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4495 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004496
4497
4498 <tr class="entry" id="dynamic_android.control.awbState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004499 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004500 android.<wbr/>control.<wbr/>awb<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004501 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004502 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004503 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004504
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004505 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004506
4507 <ul class="entry_type_enum">
4508 <li>
4509 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004510 <span class="entry_type_enum_notes"><p>AWB is not in auto mode.<wbr/> When a camera device is opened,<wbr/> it
4511starts in this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004512 </li>
4513 <li>
4514 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004515 <span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control
Zhijun He92e698d2014-01-13 16:24:31 -08004516values for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004517 </li>
4518 <li>
4519 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004520 <span class="entry_type_enum_notes"><p>AWB has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08004521current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004522 </li>
4523 <li>
4524 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08004525 <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004526 </li>
4527 </ul>
4528
4529 </td> <!-- entry_type -->
4530
4531 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004532 <p>Current state of AWB algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004533 </td>
4534
4535 <td class="entry_units">
4536 </td>
4537
4538 <td class="entry_range">
4539 </td>
4540
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004541 <td class="entry_tags">
4542 </td>
4543
4544 </tr>
4545 <tr class="entries_header">
4546 <th class="th_details" colspan="5">Details</th>
4547 </tr>
4548 <tr class="entry_cont">
4549 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08004550 <p>Switching between or enabling AWB modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) always
4551resets the AWB state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
4552or <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
4553the algorithm states to INACTIVE.<wbr/></p>
4554<p>The camera device can do several state transitions between two results,<wbr/> if it is
4555allowed by the state transition table.<wbr/> So INACTIVE may never actually be seen in
4556a result.<wbr/></p>
4557<p>The state in the result is the state for this image (in sync with this image): if
4558AWB state becomes CONVERGED,<wbr/> then the image data associated with this result should
4559be good to use.<wbr/></p>
4560<p>Below are state transition tables for different AWB modes.<wbr/></p>
4561<p>When <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != AWB_<wbr/>MODE_<wbr/>AUTO</code>:</p>
4562<table>
4563<thead>
4564<tr>
4565<th align="center">State</th>
4566<th align="center">Transition Cause</th>
4567<th align="center">New State</th>
4568<th align="center">Notes</th>
4569</tr>
4570</thead>
4571<tbody>
4572<tr>
4573<td align="center">INACTIVE</td>
4574<td align="center"></td>
4575<td align="center">INACTIVE</td>
4576<td align="center">Camera device auto white balance algorithm is disabled</td>
4577</tr>
4578</tbody>
4579</table>
4580<p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is AWB_<wbr/>MODE_<wbr/>AUTO:</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">Camera device initiates AWB scan</td>
4594<td align="center">SEARCHING</td>
4595<td align="center">Values changing</td>
4596</tr>
4597<tr>
4598<td align="center">INACTIVE</td>
4599<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4600<td align="center">LOCKED</td>
4601<td align="center">Values locked</td>
4602</tr>
4603<tr>
4604<td align="center">SEARCHING</td>
4605<td align="center">Camera device finishes AWB scan</td>
4606<td align="center">CONVERGED</td>
4607<td align="center">Good values,<wbr/> not changing</td>
4608</tr>
4609<tr>
4610<td align="center">SEARCHING</td>
4611<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4612<td align="center">LOCKED</td>
4613<td align="center">Values locked</td>
4614</tr>
4615<tr>
4616<td align="center">CONVERGED</td>
4617<td align="center">Camera device initiates AWB scan</td>
4618<td align="center">SEARCHING</td>
4619<td align="center">Values changing</td>
4620</tr>
4621<tr>
4622<td align="center">CONVERGED</td>
4623<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4624<td align="center">LOCKED</td>
4625<td align="center">Values locked</td>
4626</tr>
4627<tr>
4628<td align="center">LOCKED</td>
4629<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4630<td align="center">SEARCHING</td>
4631<td align="center">Values not good after unlock</td>
4632</tr>
4633<tr>
4634<td align="center">LOCKED</td>
4635<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4636<td align="center">CONVERGED</td>
4637<td align="center">Values good after unlock</td>
4638</tr>
4639</tbody>
4640</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004641 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004642 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004643
4644
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004645 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4646 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004647
4648
4649 <tr class="entry" id="dynamic_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004650 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004651 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004652 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004653 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004654 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004655
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004656 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004657
4658 <ul class="entry_type_enum">
4659 <li>
4660 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004661 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
4662routines are disabled,<wbr/> no other settings in
4663android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004664 </li>
4665 <li>
4666 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004667 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
4668Manual control of capture parameters is disabled.<wbr/> All
4669controls in android.<wbr/>control.<wbr/>* besides sceneMode take
4670effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004671 </li>
4672 <li>
4673 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004674 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
4675control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
4676controls; the HAL must ignore those settings while
4677USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
4678scene mode).<wbr/> Other control entries are still active.<wbr/>
4679This setting can only be used if availableSceneModes !=
4680UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004681 </li>
4682 </ul>
4683
4684 </td> <!-- entry_type -->
4685
4686 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004687 <p>Overall mode of 3A control
4688routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004689 </td>
4690
4691 <td class="entry_units">
4692 </td>
4693
4694 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004695 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004696 </td>
4697
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004698 <td class="entry_tags">
4699 <ul class="entry_tags">
4700 <li><a href="#tag_BC">BC</a></li>
4701 </ul>
4702 </td>
4703
4704 </tr>
4705 <tr class="entries_header">
4706 <th class="th_details" colspan="5">Details</th>
4707 </tr>
4708 <tr class="entry_cont">
4709 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004710 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004711by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08004712capture parameters itself.<wbr/></p>
4713<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004714android.<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 -08004715<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004716android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08004717one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004718as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004719<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 -08004720 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004721 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004722
4723
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004724 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4725 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004726
4727
4728
4729 <!-- end of kind -->
4730 </tbody>
4731
4732 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004733 <tr><td colspan="6" id="section_demosaic" class="section">demosaic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004734
4735
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004736 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004737
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004738 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004739 <tr>
4740 <th class="th_name">Property Name</th>
4741 <th class="th_type">Type</th>
4742 <th class="th_description">Description</th>
4743 <th class="th_units">Units</th>
4744 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004745 <th class="th_tags">Tags</th>
4746 </tr>
4747 </thead>
4748
4749 <tbody>
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760 <tr class="entry" id="controls_android.demosaic.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004761 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004762 android.<wbr/>demosaic.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004763 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004764 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004765 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004766
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004767 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004768
4769 <ul class="entry_type_enum">
4770 <li>
4771 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004772 <span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to
4773Bayer RAW output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004774 </li>
4775 <li>
4776 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004777 <span class="entry_type_enum_notes"><p>High-quality may reduce output frame
4778rate</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004779 </li>
4780 </ul>
4781
4782 </td> <!-- entry_type -->
4783
4784 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004785 <p>Controls the quality of the demosaicing
4786processing</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004787 </td>
4788
4789 <td class="entry_units">
4790 </td>
4791
4792 <td class="entry_range">
4793 </td>
4794
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004795 <td class="entry_tags">
4796 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004797 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004798 </ul>
4799 </td>
4800
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004801 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004802
4803
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004804 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4805 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004806
4807
4808
4809 <!-- end of kind -->
4810 </tbody>
4811
4812 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004813 <tr><td colspan="6" id="section_edge" class="section">edge</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004814
4815
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004816 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004817
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004818 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004819 <tr>
4820 <th class="th_name">Property Name</th>
4821 <th class="th_type">Type</th>
4822 <th class="th_description">Description</th>
4823 <th class="th_units">Units</th>
4824 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004825 <th class="th_tags">Tags</th>
4826 </tr>
4827 </thead>
4828
4829 <tbody>
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840 <tr class="entry" id="controls_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004841 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004842 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004843 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004844 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004845 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004846
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004847 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004848
4849 <ul class="entry_type_enum">
4850 <li>
4851 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004852 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004853 </li>
4854 <li>
4855 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004856 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4857output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004858 </li>
4859 <li>
4860 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004861 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4862quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004863 </li>
4864 </ul>
4865
4866 </td> <!-- entry_type -->
4867
4868 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004869 <p>Operation mode for edge
4870enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004871 </td>
4872
4873 <td class="entry_units">
4874 </td>
4875
4876 <td class="entry_range">
4877 </td>
4878
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004879 <td class="entry_tags">
4880 </td>
4881
4882 </tr>
4883 <tr class="entries_header">
4884 <th class="th_details" colspan="5">Details</th>
4885 </tr>
4886 <tr class="entry_cont">
4887 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004888 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
4889enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004890<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08004891will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004892camera device will use the highest-quality enhancement algorithms,<wbr/>
4893even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08004894not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004895 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004896 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004897
4898
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004899 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4900 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004901
4902
4903 <tr class="entry" id="controls_android.edge.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004904 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004905 android.<wbr/>edge.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004906 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004907 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004908 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004909
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004910 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004911
4912
4913 </td> <!-- entry_type -->
4914
4915 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004916 <p>Control the amount of edge enhancement
4917applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004918 </td>
4919
4920 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08004921 1-10; 10 is maximum sharpening
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004922 </td>
4923
4924 <td class="entry_range">
4925 </td>
4926
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004927 <td class="entry_tags">
4928 </td>
4929
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004930 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004931
4932
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004933 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4934 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004935
4936
4937
4938 <!-- end of kind -->
4939 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004940 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004941
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004942 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004943 <tr>
4944 <th class="th_name">Property Name</th>
4945 <th class="th_type">Type</th>
4946 <th class="th_description">Description</th>
4947 <th class="th_units">Units</th>
4948 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004949 <th class="th_tags">Tags</th>
4950 </tr>
4951 </thead>
4952
4953 <tbody>
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964 <tr class="entry" id="dynamic_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004965 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004966 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004967 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004968 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004969 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004970
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004971 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004972
4973 <ul class="entry_type_enum">
4974 <li>
4975 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004976 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004977 </li>
4978 <li>
4979 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004980 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4981output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004982 </li>
4983 <li>
4984 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004985 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4986quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004987 </li>
4988 </ul>
4989
4990 </td> <!-- entry_type -->
4991
4992 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004993 <p>Operation mode for edge
4994enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004995 </td>
4996
4997 <td class="entry_units">
4998 </td>
4999
5000 <td class="entry_range">
5001 </td>
5002
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005003 <td class="entry_tags">
5004 </td>
5005
5006 </tr>
5007 <tr class="entries_header">
5008 <th class="th_details" colspan="5">Details</th>
5009 </tr>
5010 <tr class="entry_cont">
5011 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005012 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
5013enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005014<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08005015will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005016camera device will use the highest-quality enhancement algorithms,<wbr/>
5017even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08005018not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005019 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005020 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005021
5022
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005023 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5024 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005025
5026
5027
5028 <!-- end of kind -->
5029 </tbody>
5030
5031 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005032 <tr><td colspan="6" id="section_flash" class="section">flash</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005033
5034
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005035 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005036
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005037 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005038 <tr>
5039 <th class="th_name">Property Name</th>
5040 <th class="th_type">Type</th>
5041 <th class="th_description">Description</th>
5042 <th class="th_units">Units</th>
5043 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005044 <th class="th_tags">Tags</th>
5045 </tr>
5046 </thead>
5047
5048 <tbody>
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059 <tr class="entry" id="controls_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005060 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005061 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005062 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005063 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005064 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005065
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005066 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005067
5068
5069 </td> <!-- entry_type -->
5070
5071 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005072 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005073 </td>
5074
5075 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005076 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005077 </td>
5078
5079 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005080 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005081 </td>
5082
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005083 <td class="entry_tags">
5084 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005085 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005086 </ul>
5087 </td>
5088
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005089 </tr>
5090 <tr class="entries_header">
5091 <th class="th_details" colspan="5">Details</th>
5092 </tr>
5093 <tr class="entry_cont">
5094 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005095 <p>Power for snapshot may use a different scale than
5096for torch mode.<wbr/> Only one entry for torch mode will be
5097used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005098 </td>
5099 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005100
5101
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005102 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5103 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005104
5105
5106 <tr class="entry" id="controls_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005107 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005108 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005109 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005110 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005111 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005112
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005113 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005114
5115
5116 </td> <!-- entry_type -->
5117
5118 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005119 <p>Firing time of flash relative to start of
5120exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005121 </td>
5122
5123 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005124 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005125 </td>
5126
5127 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005128 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005129 </td>
5130
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005131 <td class="entry_tags">
5132 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005133 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005134 </ul>
5135 </td>
5136
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005137 </tr>
5138 <tr class="entries_header">
5139 <th class="th_details" colspan="5">Details</th>
5140 </tr>
5141 <tr class="entry_cont">
5142 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005143 <p>Clamped to (0,<wbr/> exposure time - flash
5144duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005145 </td>
5146 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005147
5148
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005149 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5150 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005151
5152
5153 <tr class="entry" id="controls_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005154 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005155 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005156 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005157 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005158 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005159
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005160 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005161
5162 <ul class="entry_type_enum">
5163 <li>
5164 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005165 <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 -08005166 </li>
5167 <li>
5168 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005169 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5170for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5171<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005172 </li>
5173 <li>
5174 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005175 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005176 </li>
5177 </ul>
5178
5179 </td> <!-- entry_type -->
5180
5181 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005182 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005183 </td>
5184
5185 <td class="entry_units">
5186 </td>
5187
5188 <td class="entry_range">
5189 </td>
5190
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005191 <td class="entry_tags">
5192 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005193 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005194 </ul>
5195 </td>
5196
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005197 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005198 <tr class="entries_header">
5199 <th class="th_details" colspan="5">Details</th>
5200 </tr>
5201 <tr class="entry_cont">
5202 <td class="entry_details" colspan="5">
5203 <p>This control is only effective when flash unit is available
Zhijun Hebdc94c42014-01-21 18:28:30 -08005204(<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 -08005205<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/>
5206Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5207ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5208<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5209<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5210device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5211control should be used along with AE precapture metering sequence
5212(<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>
5213<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5214for 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 -08005215<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 -08005216 </td>
5217 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005218
5219
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005220 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5221 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005222
5223
5224
5225 <!-- end of kind -->
5226 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005227 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005228
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005229 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005230 <tr>
5231 <th class="th_name">Property Name</th>
5232 <th class="th_type">Type</th>
5233 <th class="th_description">Description</th>
5234 <th class="th_units">Units</th>
5235 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005236 <th class="th_tags">Tags</th>
5237 </tr>
5238 </thead>
5239
5240 <tbody>
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253 <tr class="entry" id="static_android.flash.info.available">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005254 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005255 android.<wbr/>flash.<wbr/>info.<wbr/>available
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005256 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005257 <td class="entry_type">
Zhijun He5169ce12014-01-24 16:48:25 -08005258 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005259
Zhijun He5169ce12014-01-24 16:48:25 -08005260 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005261
Zhijun He5169ce12014-01-24 16:48:25 -08005262 <ul class="entry_type_enum">
5263 <li>
5264 <span class="entry_type_enum_name">FALSE</span>
5265 </li>
5266 <li>
5267 <span class="entry_type_enum_name">TRUE</span>
5268 </li>
5269 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005270
5271 </td> <!-- entry_type -->
5272
5273 <td class="entry_description">
Zhijun He5169ce12014-01-24 16:48:25 -08005274 <p>Whether this camera device has a
5275flash.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005276 </td>
5277
5278 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005279 </td>
5280
5281 <td class="entry_range">
5282 </td>
5283
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005284 <td class="entry_tags">
5285 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005286 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005287 </ul>
5288 </td>
5289
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005290 </tr>
5291 <tr class="entries_header">
5292 <th class="th_details" colspan="5">Details</th>
5293 </tr>
5294 <tr class="entry_cont">
5295 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005296 <p>If no flash,<wbr/> none of the flash controls do
Zhijun He5169ce12014-01-24 16:48:25 -08005297anything.<wbr/> All other metadata should return 0.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005298 </td>
5299 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005300
5301
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005302 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5303 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005304
5305
5306 <tr class="entry" id="static_android.flash.info.chargeDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005307 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005308 android.<wbr/>flash.<wbr/>info.<wbr/>charge<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005309 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005310 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005311 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005312
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005313 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005314
5315
5316 </td> <!-- entry_type -->
5317
5318 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005319 <p>Time taken before flash can fire
5320again</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005321 </td>
5322
5323 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005324 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005325 </td>
5326
5327 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005328 <p>0-1e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005329 </td>
5330
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005331 <td class="entry_tags">
5332 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005333 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005334 </ul>
5335 </td>
5336
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005337 </tr>
5338 <tr class="entries_header">
5339 <th class="th_details" colspan="5">Details</th>
5340 </tr>
5341 <tr class="entry_cont">
5342 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005343 <p>1 second too long/<wbr/>too short for recharge? Should
5344this be power-dependent?</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005345 </td>
5346 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005347
5348
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005349 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5350 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005351
5352
5353
5354
5355
5356 <tr class="entry" id="static_android.flash.colorTemperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005357 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005358 android.<wbr/>flash.<wbr/>color<wbr/>Temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005359 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005360 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005361 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005362
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005363 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005364
5365
5366 </td> <!-- entry_type -->
5367
5368 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005369 <p>The x,<wbr/>y whitepoint of the
5370flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005371 </td>
5372
5373 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005374 pair of floats
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005375 </td>
5376
5377 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005378 <p>0-1 for both</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005379 </td>
5380
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005381 <td class="entry_tags">
5382 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005383 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005384 </ul>
5385 </td>
5386
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005387 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005388
5389
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005390 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5391 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005392
5393
5394 <tr class="entry" id="static_android.flash.maxEnergy">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005395 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005396 android.<wbr/>flash.<wbr/>max<wbr/>Energy
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005397 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005398 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005399 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005400
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005401 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005402
5403
5404 </td> <!-- entry_type -->
5405
5406 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005407 <p>Max energy output of the flash for a full
5408power single flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005409 </td>
5410
5411 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005412 lumen-seconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005413 </td>
5414
5415 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08005416 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005417 </td>
5418
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005419 <td class="entry_tags">
5420 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005421 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005422 </ul>
5423 </td>
5424
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005425 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005426
5427
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005428 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5429 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005430
5431
5432
5433 <!-- end of kind -->
5434 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005435 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005436
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005437 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005438 <tr>
5439 <th class="th_name">Property Name</th>
5440 <th class="th_type">Type</th>
5441 <th class="th_description">Description</th>
5442 <th class="th_units">Units</th>
5443 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005444 <th class="th_tags">Tags</th>
5445 </tr>
5446 </thead>
5447
5448 <tbody>
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459 <tr class="entry" id="dynamic_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005460 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005461 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005462 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005463 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005464 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005465
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005466 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005467
5468
5469 </td> <!-- entry_type -->
5470
5471 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005472 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005473 </td>
5474
5475 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005476 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005477 </td>
5478
5479 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005480 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005481 </td>
5482
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005483 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005484 <ul class="entry_tags">
5485 <li><a href="#tag_V1">V1</a></li>
5486 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005487 </td>
5488
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005489 </tr>
5490 <tr class="entries_header">
5491 <th class="th_details" colspan="5">Details</th>
5492 </tr>
5493 <tr class="entry_cont">
5494 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005495 <p>Power for snapshot may use a different scale than
5496for torch mode.<wbr/> Only one entry for torch mode will be
5497used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005498 </td>
5499 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005500
5501
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005502 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5503 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005504
5505
5506 <tr class="entry" id="dynamic_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005507 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005508 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005509 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005510 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005511 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005512
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005513 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005514
5515
5516 </td> <!-- entry_type -->
5517
5518 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005519 <p>Firing time of flash relative to start of
5520exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005521 </td>
5522
5523 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005524 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005525 </td>
5526
5527 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005528 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005529 </td>
5530
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005531 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005532 <ul class="entry_tags">
5533 <li><a href="#tag_V1">V1</a></li>
5534 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005535 </td>
5536
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005537 </tr>
5538 <tr class="entries_header">
5539 <th class="th_details" colspan="5">Details</th>
5540 </tr>
5541 <tr class="entry_cont">
5542 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005543 <p>Clamped to (0,<wbr/> exposure time - flash
5544duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005545 </td>
5546 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005547
5548
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005549 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5550 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005551
5552
5553 <tr class="entry" id="dynamic_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005554 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005555 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005556 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005557 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005558 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005559
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005560 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005561
5562 <ul class="entry_type_enum">
5563 <li>
5564 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005565 <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 -08005566 </li>
5567 <li>
5568 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005569 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5570for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5571<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005572 </li>
5573 <li>
5574 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005575 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005576 </li>
5577 </ul>
5578
5579 </td> <!-- entry_type -->
5580
5581 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005582 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005583 </td>
5584
5585 <td class="entry_units">
5586 </td>
5587
5588 <td class="entry_range">
5589 </td>
5590
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005591 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005592 <ul class="entry_tags">
5593 <li><a href="#tag_BC">BC</a></li>
5594 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005595 </td>
5596
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005597 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005598 <tr class="entries_header">
5599 <th class="th_details" colspan="5">Details</th>
5600 </tr>
5601 <tr class="entry_cont">
5602 <td class="entry_details" colspan="5">
5603 <p>This control is only effective when flash unit is available
Zhijun Hebdc94c42014-01-21 18:28:30 -08005604(<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 -08005605<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/>
5606Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5607ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5608<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5609<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5610device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5611control should be used along with AE precapture metering sequence
5612(<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>
5613<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5614for 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 -08005615<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 -08005616 </td>
5617 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005618
5619
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005620 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5621 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005622
5623
5624 <tr class="entry" id="dynamic_android.flash.state">
Zhijun He5169ce12014-01-24 16:48:25 -08005625 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005626 android.<wbr/>flash.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005627 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005628 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005629 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005630
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005631 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005632
5633 <ul class="entry_type_enum">
5634 <li>
5635 <span class="entry_type_enum_name">UNAVAILABLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005636 <span class="entry_type_enum_notes"><p>No flash on camera</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005637 </li>
5638 <li>
5639 <span class="entry_type_enum_name">CHARGING</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005640 <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 -08005641charging and cannot be fired</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005642 </li>
5643 <li>
5644 <span class="entry_type_enum_name">READY</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005645 <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 -08005646ready to fire</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005647 </li>
5648 <li>
5649 <span class="entry_type_enum_name">FIRED</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005650 <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 -08005651for this capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005652 </li>
5653 </ul>
5654
5655 </td> <!-- entry_type -->
5656
5657 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005658 <p>Current state of the flash
Zhijun He5169ce12014-01-24 16:48:25 -08005659unit.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005660 </td>
5661
5662 <td class="entry_units">
5663 </td>
5664
5665 <td class="entry_range">
5666 </td>
5667
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005668 <td class="entry_tags">
5669 </td>
5670
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005671 </tr>
Zhijun He5169ce12014-01-24 16:48:25 -08005672 <tr class="entries_header">
5673 <th class="th_details" colspan="5">Details</th>
5674 </tr>
5675 <tr class="entry_cont">
5676 <td class="entry_details" colspan="5">
5677 <p>When the camera device doesn't have flash unit
5678(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/>
5679Other states indicate the current flash status.<wbr/></p>
5680 </td>
5681 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005682
5683
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005684 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5685 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005686
5687
5688
5689 <!-- end of kind -->
5690 </tbody>
5691
5692 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005693 <tr><td colspan="6" id="section_geometric" class="section">geometric</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005694
5695
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005696 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005697
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005698 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005699 <tr>
5700 <th class="th_name">Property Name</th>
5701 <th class="th_type">Type</th>
5702 <th class="th_description">Description</th>
5703 <th class="th_units">Units</th>
5704 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005705 <th class="th_tags">Tags</th>
5706 </tr>
5707 </thead>
5708
5709 <tbody>
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720 <tr class="entry" id="controls_android.geometric.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005721 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005722 android.<wbr/>geometric.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005723 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005724 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005725 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005726
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005727 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005728
5729 <ul class="entry_type_enum">
5730 <li>
5731 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005732 <span class="entry_type_enum_notes"><p>No geometric correction is
5733applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005734 </li>
5735 <li>
5736 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005737 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw
5738bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005739 </li>
5740 <li>
5741 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005742 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5743quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005744 </li>
5745 </ul>
5746
5747 </td> <!-- entry_type -->
5748
5749 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005750 <p>Operating mode of geometric
5751correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005752 </td>
5753
5754 <td class="entry_units">
5755 </td>
5756
5757 <td class="entry_range">
5758 </td>
5759
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005760 <td class="entry_tags">
5761 </td>
5762
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005763 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005764
5765
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005766 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5767 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005768
5769
5770 <tr class="entry" id="controls_android.geometric.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005771 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005772 android.<wbr/>geometric.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005773 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005774 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005775 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005776
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005777 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005778
5779
5780 </td> <!-- entry_type -->
5781
5782 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005783 <p>Control the amount of shading correction
5784applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005785 </td>
5786
5787 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005788 unitless: 1-10; 10 is full shading
5789 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005790 </td>
5791
5792 <td class="entry_range">
5793 </td>
5794
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005795 <td class="entry_tags">
5796 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005797 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005798 </ul>
5799 </td>
5800
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005801 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005802
5803
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005804 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5805 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005806
5807
5808
5809 <!-- end of kind -->
5810 </tbody>
5811
5812 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005813 <tr><td colspan="6" id="section_hotPixel" class="section">hotPixel</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005814
5815
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005816 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005817
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005818 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005819 <tr>
5820 <th class="th_name">Property Name</th>
5821 <th class="th_type">Type</th>
5822 <th class="th_description">Description</th>
5823 <th class="th_units">Units</th>
5824 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005825 <th class="th_tags">Tags</th>
5826 </tr>
5827 </thead>
5828
5829 <tbody>
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840 <tr class="entry" id="controls_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005841 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005842 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005843 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005844 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005845 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005846
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005847 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005848
5849 <ul class="entry_type_enum">
5850 <li>
5851 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005852 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
5853applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005854 </li>
5855 <li>
5856 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005857 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
5858Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005859 </li>
5860 <li>
5861 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005862 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5863quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005864 </li>
5865 </ul>
5866
5867 </td> <!-- entry_type -->
5868
5869 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005870 <p>Set operational mode for hot pixel
5871correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005872 </td>
5873
5874 <td class="entry_units">
5875 </td>
5876
5877 <td class="entry_range">
5878 </td>
5879
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005880 <td class="entry_tags">
5881 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005882 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005883 </ul>
5884 </td>
5885
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005886 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005887
5888
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005889 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5890 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005891
5892
5893
5894 <!-- end of kind -->
5895 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005896 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005897
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005898 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005899 <tr>
5900 <th class="th_name">Property Name</th>
5901 <th class="th_type">Type</th>
5902 <th class="th_description">Description</th>
5903 <th class="th_units">Units</th>
5904 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005905 <th class="th_tags">Tags</th>
5906 </tr>
5907 </thead>
5908
5909 <tbody>
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922 <tr class="entry" id="static_android.hotPixel.info.map">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005923 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005924 android.<wbr/>hot<wbr/>Pixel.<wbr/>info.<wbr/>map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005925 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005926 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005927 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005928 <span class="entry_type_container">x</span>
5929
5930 <span class="entry_type_array">
5931 2 x n
5932 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005933 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08005934 <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 -08005935
5936
5937 </td> <!-- entry_type -->
5938
5939 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005940 <p>Location of hot/<wbr/>defective pixels on
5941sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005942 </td>
5943
5944 <td class="entry_units">
5945 </td>
5946
5947 <td class="entry_range">
5948 </td>
5949
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005950 <td class="entry_tags">
5951 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005952 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005953 </ul>
5954 </td>
5955
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005956 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005957
5958
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005959 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5960 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005961
5962
5963
5964
5965
5966
5967 <!-- end of kind -->
5968 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005969 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005970
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005971 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005972 <tr>
5973 <th class="th_name">Property Name</th>
5974 <th class="th_type">Type</th>
5975 <th class="th_description">Description</th>
5976 <th class="th_units">Units</th>
5977 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005978 <th class="th_tags">Tags</th>
5979 </tr>
5980 </thead>
5981
5982 <tbody>
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993 <tr class="entry" id="dynamic_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005994 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005995 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005996 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005997 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005998 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005999
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006000 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006001
6002 <ul class="entry_type_enum">
6003 <li>
6004 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006005 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
6006applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006007 </li>
6008 <li>
6009 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006010 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
6011Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006012 </li>
6013 <li>
6014 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006015 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
6016quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006017 </li>
6018 </ul>
6019
6020 </td> <!-- entry_type -->
6021
6022 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006023 <p>Set operational mode for hot pixel
6024correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006025 </td>
6026
6027 <td class="entry_units">
6028 </td>
6029
6030 <td class="entry_range">
6031 </td>
6032
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006033 <td class="entry_tags">
6034 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006035 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006036 </ul>
6037 </td>
6038
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006039 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006040
6041
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006042 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6043 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006044
6045
6046
6047 <!-- end of kind -->
6048 </tbody>
6049
6050 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006051 <tr><td colspan="6" id="section_jpeg" class="section">jpeg</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006052
6053
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006054 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006055
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006056 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006057 <tr>
6058 <th class="th_name">Property Name</th>
6059 <th class="th_type">Type</th>
6060 <th class="th_description">Description</th>
6061 <th class="th_units">Units</th>
6062 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006063 <th class="th_tags">Tags</th>
6064 </tr>
6065 </thead>
6066
6067 <tbody>
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078 <tr class="entry" id="controls_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006079 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006080 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006081 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006082 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006083 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006084 <span class="entry_type_container">x</span>
6085
6086 <span class="entry_type_array">
6087 3
6088 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006089 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006090 <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 -08006091
6092
6093 </td> <!-- entry_type -->
6094
6095 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006096 <p>GPS coordinates to include in output JPEG
6097EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006098 </td>
6099
6100 <td class="entry_units">
6101 </td>
6102
6103 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006104 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006105 </td>
6106
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006107 <td class="entry_tags">
6108 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006109 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006110 </ul>
6111 </td>
6112
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006113 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006114
6115
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006116 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6117 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006118
6119
6120 <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006121 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006122 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006123 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006124 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006125 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006126
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006127 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006128
6129
6130 </td> <!-- entry_type -->
6131
6132 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006133 <p>32 characters describing GPS algorithm to
6134include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006135 </td>
6136
6137 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006138 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006139 </td>
6140
6141 <td class="entry_range">
6142 </td>
6143
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006144 <td class="entry_tags">
6145 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006146 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006147 </ul>
6148 </td>
6149
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006150 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006151
6152
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006153 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6154 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006155
6156
6157 <tr class="entry" id="controls_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006158 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006159 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006160 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006161 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006162 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006163
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006164 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006165
6166
6167 </td> <!-- entry_type -->
6168
6169 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006170 <p>Time GPS fix was made to include in
6171EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006172 </td>
6173
6174 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006175 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006176 </td>
6177
6178 <td class="entry_range">
6179 </td>
6180
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006181 <td class="entry_tags">
6182 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006183 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006184 </ul>
6185 </td>
6186
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006187 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006188
6189
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006190 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6191 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006192
6193
6194 <tr class="entry" id="controls_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006195 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006196 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006197 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006198 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006199 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006200
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006201 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006202
6203
6204 </td> <!-- entry_type -->
6205
6206 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006207 <p>Orientation of JPEG image to
6208write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006209 </td>
6210
6211 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006212 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006213 </td>
6214
6215 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006216 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006217 </td>
6218
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006219 <td class="entry_tags">
6220 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006221 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006222 </ul>
6223 </td>
6224
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006225 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006226
6227
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006228 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6229 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006230
6231
6232 <tr class="entry" id="controls_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006233 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006234 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006235 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006236 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006237 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006238
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006239 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006240
6241
6242 </td> <!-- entry_type -->
6243
6244 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006245 <p>Compression quality of the final JPEG
6246image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006247 </td>
6248
6249 <td class="entry_units">
6250 </td>
6251
6252 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006253 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006254 </td>
6255
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006256 <td class="entry_tags">
6257 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006258 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006259 </ul>
6260 </td>
6261
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006262 </tr>
6263 <tr class="entries_header">
6264 <th class="th_details" colspan="5">Details</th>
6265 </tr>
6266 <tr class="entry_cont">
6267 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006268 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006269 </td>
6270 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006271
6272
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006273 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6274 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006275
6276
6277 <tr class="entry" id="controls_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006278 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006279 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006280 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006281 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006282 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006283
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006284 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006285
6286
6287 </td> <!-- entry_type -->
6288
6289 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006290 <p>Compression quality of JPEG
6291thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006292 </td>
6293
6294 <td class="entry_units">
6295 </td>
6296
6297 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006298 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006299 </td>
6300
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006301 <td class="entry_tags">
6302 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006303 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006304 </ul>
6305 </td>
6306
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006307 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006308
6309
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006310 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6311 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006312
6313
6314 <tr class="entry" id="controls_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006315 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006316 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006317 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006318 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006319 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006320 <span class="entry_type_container">x</span>
6321
6322 <span class="entry_type_array">
6323 2
6324 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006325 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006326
6327
6328 </td> <!-- entry_type -->
6329
6330 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006331 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006332 </td>
6333
6334 <td class="entry_units">
6335 </td>
6336
6337 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006338 <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 -08006339 </td>
6340
6341 <td class="entry_tags">
6342 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006343 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006344 </ul>
6345 </td>
6346
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006347 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006348 <tr class="entries_header">
6349 <th class="th_details" colspan="5">Details</th>
6350 </tr>
6351 <tr class="entry_cont">
6352 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006353 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6354but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006355<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6356the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006357 </td>
6358 </tr>
6359
6360
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006361 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6362 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006363
6364
6365
6366 <!-- end of kind -->
6367 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006368 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006369
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006370 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006371 <tr>
6372 <th class="th_name">Property Name</th>
6373 <th class="th_type">Type</th>
6374 <th class="th_description">Description</th>
6375 <th class="th_units">Units</th>
6376 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006377 <th class="th_tags">Tags</th>
6378 </tr>
6379 </thead>
6380
6381 <tbody>
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392 <tr class="entry" id="static_android.jpeg.availableThumbnailSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006393 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006394 android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006395 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006396 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006397 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006398 <span class="entry_type_container">x</span>
6399
6400 <span class="entry_type_array">
6401 2 x n
6402 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006403 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006404
6405
6406 </td> <!-- entry_type -->
6407
6408 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006409 <p>Supported resolutions for the JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006410 </td>
6411
6412 <td class="entry_units">
6413 </td>
6414
6415 <td class="entry_range">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006416 <p>Will include at least one valid resolution,<wbr/> plus
6417(0,<wbr/>0) for no thumbnail generation,<wbr/> and each size will be distinct.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006418 </td>
6419
6420 <td class="entry_tags">
6421 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006422 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006423 </ul>
6424 </td>
6425
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006426 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006427 <tr class="entries_header">
6428 <th class="th_details" colspan="5">Details</th>
6429 </tr>
6430 <tr class="entry_cont">
6431 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006432 <p>Below condiditions will be satisfied for this size list:</p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006433<ul>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006434<li>The sizes will be sorted by increasing pixel area (width x height).<wbr/>
6435If several resolutions have the same area,<wbr/> they will be sorted by increasing width.<wbr/></li>
6436<li>The aspect ratio of the largest thumbnail size will be same as the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006437aspect 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 -08006438The largest size is defined as the size that has the largest pixel area
Igor Murashkin0b080452013-12-27 15:30:25 -08006439in a given size list.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006440<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 -08006441one corresponding size that has the same aspect ratio in availableThumbnailSizes,<wbr/>
6442and vice versa.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006443<li>All non (0,<wbr/> 0) sizes will have non-zero widths and heights.<wbr/></li>
Igor Murashkin0b080452013-12-27 15:30:25 -08006444</ul>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006445 </td>
6446 </tr>
6447
6448
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006449 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6450 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006451
6452
6453 <tr class="entry" id="static_android.jpeg.maxSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006454 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006455 android.<wbr/>jpeg.<wbr/>max<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006456 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006457 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006458 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006459
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006460 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006461
6462
6463 </td> <!-- entry_type -->
6464
6465 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006466 <p>Maximum size in bytes for the compressed
6467JPEG buffer</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006468 </td>
6469
6470 <td class="entry_units">
6471 </td>
6472
6473 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006474 <p>Must be large enough to fit any JPEG produced by
6475the camera</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006476 </td>
6477
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006478 <td class="entry_tags">
6479 </td>
6480
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006481 </tr>
6482 <tr class="entries_header">
6483 <th class="th_details" colspan="5">Details</th>
6484 </tr>
6485 <tr class="entry_cont">
6486 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006487 <p>This is used for sizing the gralloc buffers for
6488JPEG</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006489 </td>
6490 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006491
6492
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006493 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6494 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006495
6496
6497
6498 <!-- end of kind -->
6499 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006500 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006501
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006502 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006503 <tr>
6504 <th class="th_name">Property Name</th>
6505 <th class="th_type">Type</th>
6506 <th class="th_description">Description</th>
6507 <th class="th_units">Units</th>
6508 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006509 <th class="th_tags">Tags</th>
6510 </tr>
6511 </thead>
6512
6513 <tbody>
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524 <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006525 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006526 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006527 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006528 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006529 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006530 <span class="entry_type_container">x</span>
6531
6532 <span class="entry_type_array">
6533 3
6534 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006535 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006536 <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 -08006537
6538
6539 </td> <!-- entry_type -->
6540
6541 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006542 <p>GPS coordinates to include in output JPEG
6543EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006544 </td>
6545
6546 <td class="entry_units">
6547 </td>
6548
6549 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006550 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006551 </td>
6552
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006553 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006554 <ul class="entry_tags">
6555 <li><a href="#tag_BC">BC</a></li>
6556 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006557 </td>
6558
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006559 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006560
6561
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006562 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6563 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006564
6565
6566 <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006567 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006568 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006569 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006570 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006571 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006572
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006573 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006574
6575
6576 </td> <!-- entry_type -->
6577
6578 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006579 <p>32 characters describing GPS algorithm to
6580include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006581 </td>
6582
6583 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006584 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006585 </td>
6586
6587 <td class="entry_range">
6588 </td>
6589
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006590 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006591 <ul class="entry_tags">
6592 <li><a href="#tag_BC">BC</a></li>
6593 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006594 </td>
6595
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006596 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006597
6598
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006599 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6600 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006601
6602
6603 <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006604 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006605 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006606 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006607 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006608 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006609
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006610 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006611
6612
6613 </td> <!-- entry_type -->
6614
6615 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006616 <p>Time GPS fix was made to include in
6617EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006618 </td>
6619
6620 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006621 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006622 </td>
6623
6624 <td class="entry_range">
6625 </td>
6626
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006627 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006628 <ul class="entry_tags">
6629 <li><a href="#tag_BC">BC</a></li>
6630 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006631 </td>
6632
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006633 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006634
6635
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006636 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6637 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006638
6639
6640 <tr class="entry" id="dynamic_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006641 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006642 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006643 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006644 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006645 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006646
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006647 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006648
6649
6650 </td> <!-- entry_type -->
6651
6652 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006653 <p>Orientation of JPEG image to
6654write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006655 </td>
6656
6657 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006658 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006659 </td>
6660
6661 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006662 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006663 </td>
6664
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006665 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006666 <ul class="entry_tags">
6667 <li><a href="#tag_BC">BC</a></li>
6668 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006669 </td>
6670
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006671 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006672
6673
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006674 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6675 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006676
6677
6678 <tr class="entry" id="dynamic_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006679 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006680 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006681 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006682 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006683 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006684
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006685 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006686
6687
6688 </td> <!-- entry_type -->
6689
6690 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006691 <p>Compression quality of the final JPEG
6692image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006693 </td>
6694
6695 <td class="entry_units">
6696 </td>
6697
6698 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006699 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006700 </td>
6701
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006702 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006703 <ul class="entry_tags">
6704 <li><a href="#tag_BC">BC</a></li>
6705 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006706 </td>
6707
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006708 </tr>
6709 <tr class="entries_header">
6710 <th class="th_details" colspan="5">Details</th>
6711 </tr>
6712 <tr class="entry_cont">
6713 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006714 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006715 </td>
6716 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006717
6718
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006719 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6720 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006721
6722
6723 <tr class="entry" id="dynamic_android.jpeg.size">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006724 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006725 android.<wbr/>jpeg.<wbr/>size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006726 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006727 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006728 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006729
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006730 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006731
6732
6733 </td> <!-- entry_type -->
6734
6735 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006736 <p>The size of the compressed JPEG image,<wbr/> in
6737bytes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006738 </td>
6739
6740 <td class="entry_units">
6741 </td>
6742
6743 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08006744 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006745 </td>
6746
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006747 <td class="entry_tags">
6748 </td>
6749
6750 </tr>
6751 <tr class="entries_header">
6752 <th class="th_details" colspan="5">Details</th>
6753 </tr>
6754 <tr class="entry_cont">
6755 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006756 <p>If no JPEG output is produced for the request,<wbr/>
6757this must be 0.<wbr/></p>
6758<p>Otherwise,<wbr/> this describes the real size of the compressed
6759JPEG image placed in the output stream.<wbr/> More specifically,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006760if <a href="#static_android.jpeg.maxSize">android.<wbr/>jpeg.<wbr/>max<wbr/>Size</a> = 1000000,<wbr/> and a specific capture
6761has <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 -08006762the JPEG stream will be 1000000 bytes,<wbr/> of which the first
6763500000 make up the real data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006764 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006765 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006766
6767
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006768 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6769 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006770
6771
6772 <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006773 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006774 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006775 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006776 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006777 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006778
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006779 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006780
6781
6782 </td> <!-- entry_type -->
6783
6784 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006785 <p>Compression quality of JPEG
6786thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006787 </td>
6788
6789 <td class="entry_units">
6790 </td>
6791
6792 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006793 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006794 </td>
6795
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006796 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006797 <ul class="entry_tags">
6798 <li><a href="#tag_BC">BC</a></li>
6799 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006800 </td>
6801
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006802 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006803
6804
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006805 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6806 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006807
6808
6809 <tr class="entry" id="dynamic_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006810 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006811 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006812 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006813 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006814 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006815 <span class="entry_type_container">x</span>
6816
6817 <span class="entry_type_array">
6818 2
6819 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006820 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006821
6822
6823 </td> <!-- entry_type -->
6824
6825 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006826 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006827 </td>
6828
6829 <td class="entry_units">
6830 </td>
6831
6832 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006833 <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 -08006834 </td>
6835
6836 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006837 <ul class="entry_tags">
6838 <li><a href="#tag_BC">BC</a></li>
6839 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006840 </td>
6841
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006842 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006843 <tr class="entries_header">
6844 <th class="th_details" colspan="5">Details</th>
6845 </tr>
6846 <tr class="entry_cont">
6847 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006848 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6849but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006850<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6851the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006852 </td>
6853 </tr>
6854
6855
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006856 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6857 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006858
6859
6860
6861 <!-- end of kind -->
6862 </tbody>
6863
6864 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006865 <tr><td colspan="6" id="section_lens" class="section">lens</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006866
6867
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006868 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006869
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006870 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006871 <tr>
6872 <th class="th_name">Property Name</th>
6873 <th class="th_type">Type</th>
6874 <th class="th_description">Description</th>
6875 <th class="th_units">Units</th>
6876 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006877 <th class="th_tags">Tags</th>
6878 </tr>
6879 </thead>
6880
6881 <tbody>
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892 <tr class="entry" id="controls_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006893 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006894 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006895 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006896 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006897 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006898
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006899 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006900
6901
6902 </td> <!-- entry_type -->
6903
6904 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08006905 <p>The ratio of lens focal length to the effective
6906aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006907 </td>
6908
6909 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006910 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006911 </td>
6912
6913 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006914 <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 -08006915 </td>
6916
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006917 <td class="entry_tags">
6918 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006919 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006920 </ul>
6921 </td>
6922
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006923 </tr>
6924 <tr class="entries_header">
6925 <th class="th_details" colspan="5">Details</th>
6926 </tr>
6927 <tr class="entry_cont">
6928 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08006929 <p>This will only be supported on the camera devices that
6930have variable aperture lens.<wbr/> The aperture value can only be
6931one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
6932<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
6933this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
6934<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
6935to achieve manual exposure control.<wbr/></p>
6936<p>The requested aperture value may take several frames to reach the
6937requested value; the camera device will report the current (intermediate)
Zhijun He5169ce12014-01-24 16:48:25 -08006938aperture size in capture result metadata while the aperture is changing.<wbr/>
6939While 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 -08006940<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
6941the ON modes,<wbr/> this will be overridden by the camera device
6942auto-exposure algorithm,<wbr/> the overridden values are then provided
6943back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006944 </td>
6945 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006946
6947
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006948 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6949 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006950
6951
6952 <tr class="entry" id="controls_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006953 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006954 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006955 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006956 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006957 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006958
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006959 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006960
6961
6962 </td> <!-- entry_type -->
6963
6964 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006965 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006966 </td>
6967
6968 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006969 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006970 </td>
6971
6972 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006973 <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 -08006974 </td>
6975
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006976 <td class="entry_tags">
6977 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006978 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006979 </ul>
6980 </td>
6981
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006982 </tr>
6983 <tr class="entries_header">
6984 <th class="th_details" colspan="5">Details</th>
6985 </tr>
6986 <tr class="entry_cont">
6987 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006988 <p>This will not be supported on most camera devices.<wbr/> On devices
6989where this is supported,<wbr/> this may only be set to one of the
6990values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
6991<p>Lens filters are typically used to lower the amount of light the
6992sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
6993step is the standard logarithmic representation,<wbr/> which are
6994non-negative,<wbr/> and inversely proportional to the amount of light
6995hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
6996in no reduction of the incoming light,<wbr/> and setting this to 2 would
6997mean that the filter is set to reduce incoming light by two stops
6998(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08006999<p>It may take several frames before the lens filter density changes
7000to the requested value.<wbr/> While the filter density is still changing,<wbr/>
7001<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 -08007002 </td>
7003 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007004
7005
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007006 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7007 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007008
7009
7010 <tr class="entry" id="controls_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007011 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007012 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007013 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007014 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007015 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007016
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007017 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007018
7019
7020 </td> <!-- entry_type -->
7021
7022 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007023 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007024 </td>
7025
7026 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007027 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007028 </td>
7029
7030 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007031 <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 -08007032 </td>
7033
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007034 <td class="entry_tags">
7035 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007036 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007037 </ul>
7038 </td>
7039
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007040 </tr>
7041 <tr class="entries_header">
7042 <th class="th_details" colspan="5">Details</th>
7043 </tr>
7044 <tr class="entry_cont">
7045 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007046 <p>This setting controls the physical focal length of the camera
7047device's lens.<wbr/> Changing the focal length changes the field of
7048view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7049<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
7050setting won't be applied instantaneously,<wbr/> and it may take several
Zhijun He5169ce12014-01-24 16:48:25 -08007051frames before the lens can change to the requested focal length.<wbr/>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007052While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7053be set to MOVING.<wbr/></p>
7054<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007055 </td>
7056 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007057
7058
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007059 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7060 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007061
7062
7063 <tr class="entry" id="controls_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007064 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007065 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007066 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007067 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007068 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007069
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007070 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007071
7072
7073 </td> <!-- entry_type -->
7074
7075 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007076 <p>Distance to plane of sharpest focus,<wbr/>
7077measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007078 </td>
7079
7080 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007081 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007082 </td>
7083
7084 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007085 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007086 </td>
7087
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007088 <td class="entry_tags">
7089 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007090 <li><a href="#tag_BC">BC</a></li>
7091 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007092 </ul>
7093 </td>
7094
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007095 </tr>
7096 <tr class="entries_header">
7097 <th class="th_details" colspan="5">Details</th>
7098 </tr>
7099 <tr class="entry_cont">
7100 <td class="entry_details" colspan="5">
Zhijun He5169ce12014-01-24 16:48:25 -08007101 <p>0 means infinity focus.<wbr/> Used value will be clamped
7102to [0,<wbr/> <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>].<wbr/></p>
7103<p>Like <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> this setting won't be applied
7104instantaneously,<wbr/> and it may take several frames before the lens
7105can move to the requested focus distance.<wbr/> While the lens is still moving,<wbr/>
7106<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 -08007107 </td>
7108 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007109
7110
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007111 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7112 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007113
7114
7115 <tr class="entry" id="controls_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007116 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007117 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007118 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007119 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007120 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007121
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007122 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007123
7124 <ul class="entry_type_enum">
7125 <li>
7126 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007127 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007128 </li>
7129 <li>
7130 <span class="entry_type_enum_name">ON</span>
7131 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007132 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007133 </li>
7134 </ul>
7135
7136 </td> <!-- entry_type -->
7137
7138 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007139 <p>Sets whether the camera device uses optical image stabilization (OIS)
7140when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007141 </td>
7142
7143 <td class="entry_units">
7144 </td>
7145
7146 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08007147 <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 -08007148 </td>
7149
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007150 <td class="entry_tags">
7151 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007152 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007153 </ul>
7154 </td>
7155
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007156 </tr>
7157 <tr class="entries_header">
7158 <th class="th_details" colspan="5">Details</th>
7159 </tr>
7160 <tr class="entry_cont">
7161 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08007162 <p>OIS is used to compensate for motion blur due to small movements of
7163the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
7164use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
7165allows for longer exposure times before camera shake becomes
7166apparent.<wbr/></p>
7167<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007168 </td>
7169 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007170
7171
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007172 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7173 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007174
7175
7176
7177 <!-- end of kind -->
7178 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007179 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007180
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007181 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007182 <tr>
7183 <th class="th_name">Property Name</th>
7184 <th class="th_type">Type</th>
7185 <th class="th_description">Description</th>
7186 <th class="th_units">Units</th>
7187 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007188 <th class="th_tags">Tags</th>
7189 </tr>
7190 </thead>
7191
7192 <tbody>
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205 <tr class="entry" id="static_android.lens.info.availableApertures">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007206 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007207 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007208 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007209 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007210 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007211 <span class="entry_type_container">x</span>
7212
7213 <span class="entry_type_array">
7214 n
7215 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007216 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007217
7218
7219 </td> <!-- entry_type -->
7220
7221 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007222 <p>List of supported aperture
Zhijun He1b58d382014-01-10 10:22:53 -08007223values.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007224 </td>
7225
7226 <td class="entry_units">
7227 </td>
7228
7229 <td class="entry_range">
Zhijun He5169ce12014-01-24 16:48:25 -08007230 <p>one entry required,<wbr/> &gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007231 </td>
7232
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007233 <td class="entry_tags">
7234 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007235 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007236 </ul>
7237 </td>
7238
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007239 </tr>
7240 <tr class="entries_header">
7241 <th class="th_details" colspan="5">Details</th>
7242 </tr>
7243 <tr class="entry_cont">
7244 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007245 <p>If the camera device doesn't support variable apertures,<wbr/>
7246listed value will be the fixed aperture.<wbr/></p>
7247<p>If the camera device supports variable apertures,<wbr/> the aperture value
7248in this list will be sorted in ascending order.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007249 </td>
7250 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007251
7252
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007253 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7254 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007255
7256
7257 <tr class="entry" id="static_android.lens.info.availableFilterDensities">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007258 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007259 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007260 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007261 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007262 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007263 <span class="entry_type_container">x</span>
7264
7265 <span class="entry_type_array">
7266 n
7267 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007268 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007269
7270
7271 </td> <!-- entry_type -->
7272
7273 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007274 <p>List of supported neutral density filter values for
7275<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007276 </td>
7277
7278 <td class="entry_units">
7279 </td>
7280
7281 <td class="entry_range">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007282 <p>At least one value is required.<wbr/> Values must be &gt;= 0.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007283 </td>
7284
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007285 <td class="entry_tags">
7286 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007287 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007288 </ul>
7289 </td>
7290
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007291 </tr>
7292 <tr class="entries_header">
7293 <th class="th_details" colspan="5">Details</th>
7294 </tr>
7295 <tr class="entry_cont">
7296 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007297 <p>If changing <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> is not supported,<wbr/>
7298availableFilterDensities must contain only 0.<wbr/> Otherwise,<wbr/> this
7299list contains only the exact filter density values available on
7300this camera device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007301 </td>
7302 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007303
7304
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007305 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7306 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007307
7308
7309 <tr class="entry" id="static_android.lens.info.availableFocalLengths">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007310 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007311 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007312 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007313 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007314 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007315 <span class="entry_type_container">x</span>
7316
7317 <span class="entry_type_array">
7318 n
7319 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007320 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007321 <div class="entry_type_notes">The list of available focal lengths</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007322
7323
7324 </td> <!-- entry_type -->
7325
7326 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007327 <p>The available focal lengths for this device for use with
7328<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007329 </td>
7330
7331 <td class="entry_units">
7332 </td>
7333
7334 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007335 <p>Each value in this list must be &gt; 0.<wbr/> This list must
7336contain at least one value.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007337 </td>
7338
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007339 <td class="entry_tags">
7340 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007341 <li><a href="#tag_BC">BC</a></li>
7342 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007343 </ul>
7344 </td>
7345
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007346 </tr>
7347 <tr class="entries_header">
7348 <th class="th_details" colspan="5">Details</th>
7349 </tr>
7350 <tr class="entry_cont">
7351 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007352 <p>If optical zoom is not supported,<wbr/> this will only report
7353a single value corresponding to the static focal length of the
7354device.<wbr/> Otherwise,<wbr/> this will report every focal length supported
7355by the device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007356 </td>
7357 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007358
7359
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007360 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7361 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007362
7363
7364 <tr class="entry" id="static_android.lens.info.availableOpticalStabilization">
Ruben Brunk218639c2014-01-15 18:09:41 -08007365 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007366 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007367 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007368 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007369 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007370 <span class="entry_type_container">x</span>
7371
7372 <span class="entry_type_array">
7373 n
7374 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007375 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007376 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007377
7378
7379 </td> <!-- entry_type -->
7380
7381 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007382 <p>List containing a subset of the optical image
7383stabilization (OIS) modes specified in
7384<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 -08007385 </td>
7386
7387 <td class="entry_units">
7388 </td>
7389
7390 <td class="entry_range">
7391 </td>
7392
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007393 <td class="entry_tags">
7394 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007395 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007396 </ul>
7397 </td>
7398
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007399 </tr>
Ruben Brunk218639c2014-01-15 18:09:41 -08007400 <tr class="entries_header">
7401 <th class="th_details" colspan="5">Details</th>
7402 </tr>
7403 <tr class="entry_cont">
7404 <td class="entry_details" colspan="5">
7405 <p>If OIS is not implemented for a given camera device,<wbr/> this should
7406contain only OFF.<wbr/></p>
7407 </td>
7408 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007409
7410
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007411 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7412 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007413
7414
7415 <tr class="entry" id="static_android.lens.info.geometricCorrectionMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007416 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007417 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007418 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007419 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007420 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007421 <span class="entry_type_container">x</span>
7422
7423 <span class="entry_type_array">
7424 2 x 3 x n x m
7425 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007426 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007427 <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 -08007428
7429
7430 </td> <!-- entry_type -->
7431
7432 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007433 <p>A low-resolution map for correction of
7434geometric distortions and chromatic aberrations,<wbr/> per
7435color channel</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007436 </td>
7437
7438 <td class="entry_units">
7439 </td>
7440
7441 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007442 <p>N,<wbr/> M &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007443 </td>
7444
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007445 <td class="entry_tags">
7446 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007447 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007448 </ul>
7449 </td>
7450
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007451 </tr>
7452 <tr class="entries_header">
7453 <th class="th_details" colspan="5">Details</th>
7454 </tr>
7455 <tr class="entry_cont">
7456 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007457 <p>[DNG wants a function instead].<wbr/> What's easiest
7458for implementers? With an array size (M,<wbr/> N),<wbr/> entry (i,<wbr/>
7459j) provides the destination for pixel (i/<wbr/>(M-1) * width,<wbr/>
7460j/<wbr/>(N-1) * height).<wbr/> Data is row-major,<wbr/> with each array
7461entry 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 -08007462 </td>
7463 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007464
7465
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007466 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7467 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007468
7469
7470 <tr class="entry" id="static_android.lens.info.geometricCorrectionMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007471 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007472 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007473 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007474 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007475 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007476 <span class="entry_type_container">x</span>
7477
7478 <span class="entry_type_array">
7479 2
7480 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007481 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007482 <div class="entry_type_notes">width and height of geometric correction map</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007483
7484
7485 </td> <!-- entry_type -->
7486
7487 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007488 <p>Dimensions of geometric correction
7489map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007490 </td>
7491
7492 <td class="entry_units">
7493 </td>
7494
7495 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007496 <p>Both values &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007497 </td>
7498
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007499 <td class="entry_tags">
7500 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007501 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007502 </ul>
7503 </td>
7504
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007505 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007506
7507
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007508 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7509 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007510
7511
7512 <tr class="entry" id="static_android.lens.info.hyperfocalDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007513 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007514 android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007515 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007516 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007517 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007518
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007519 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007520
7521
7522 </td> <!-- entry_type -->
7523
7524 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007525 <p>Hyperfocal distance for this lens; set to
75260 if fixed focus</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007527 </td>
7528
7529 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007530 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007531 </td>
7532
7533 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007534 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007535 </td>
7536
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007537 <td class="entry_tags">
7538 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007539 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007540 </ul>
7541 </td>
7542
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007543 </tr>
7544 <tr class="entries_header">
7545 <th class="th_details" colspan="5">Details</th>
7546 </tr>
7547 <tr class="entry_cont">
7548 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007549 <p>The hyperfocal distance is used for the old
7550API's 'fixed' setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007551 </td>
7552 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007553
7554
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007555 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7556 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007557
7558
7559 <tr class="entry" id="static_android.lens.info.minimumFocusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007560 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007561 android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007562 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007563 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007564 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007565
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007566 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007567
7568
7569 </td> <!-- entry_type -->
7570
7571 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007572 <p>Shortest distance from frontmost surface
7573of the lens that can be focused correctly</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007574 </td>
7575
7576 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007577 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007578 </td>
7579
7580 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007581 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007582 </td>
7583
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007584 <td class="entry_tags">
7585 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007586 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007587 </ul>
7588 </td>
7589
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007590 </tr>
7591 <tr class="entries_header">
7592 <th class="th_details" colspan="5">Details</th>
7593 </tr>
7594 <tr class="entry_cont">
7595 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007596 <p>If the lens is fixed-focus,<wbr/> this should be
75970</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007598 </td>
7599 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007600
7601
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007602 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7603 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007604
7605
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007606 <tr class="entry" id="static_android.lens.info.shadingMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007607 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007608 android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007609 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007610 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007611 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007612 <span class="entry_type_container">x</span>
7613
7614 <span class="entry_type_array">
7615 2
7616 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007617 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007618 <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 -08007619
7620
7621 </td> <!-- entry_type -->
7622
7623 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007624 <p>Dimensions of lens shading map.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007625 </td>
7626
7627 <td class="entry_units">
7628 </td>
7629
7630 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007631 <p>Both values &gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007632 </td>
7633
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007634 <td class="entry_tags">
7635 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007636 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007637 </ul>
7638 </td>
7639
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007640 </tr>
7641 <tr class="entries_header">
7642 <th class="th_details" colspan="5">Details</th>
7643 </tr>
7644 <tr class="entry_cont">
7645 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007646 <p>The map should be on the order of 30-40 rows and columns,<wbr/> and
7647must be smaller than 64x64.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007648 </td>
7649 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007650
7651
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007652 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7653 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007654
7655
7656
7657
7658
7659 <tr class="entry" id="static_android.lens.facing">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007660 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007661 android.<wbr/>lens.<wbr/>facing
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007662 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007663 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007664 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007665
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007666 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007667
7668 <ul class="entry_type_enum">
7669 <li>
7670 <span class="entry_type_enum_name">FRONT</span>
7671 </li>
7672 <li>
7673 <span class="entry_type_enum_name">BACK</span>
7674 </li>
7675 </ul>
7676
7677 </td> <!-- entry_type -->
7678
7679 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007680 <p>Direction the camera faces relative to
7681device screen</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007682 </td>
7683
7684 <td class="entry_units">
7685 </td>
7686
7687 <td class="entry_range">
7688 </td>
7689
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007690 <td class="entry_tags">
7691 </td>
7692
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007693 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007694
7695
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007696 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7697 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007698
7699
7700 <tr class="entry" id="static_android.lens.opticalAxisAngle">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007701 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007702 android.<wbr/>lens.<wbr/>optical<wbr/>Axis<wbr/>Angle
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007703 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007704 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007705 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007706 <span class="entry_type_container">x</span>
7707
7708 <span class="entry_type_array">
7709 2
7710 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007711 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007712 <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 -08007713
7714
7715 </td> <!-- entry_type -->
7716
7717 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007718 <p>Relative angle of camera optical axis to the
7719perpendicular axis from the display</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007720 </td>
7721
7722 <td class="entry_units">
7723 </td>
7724
7725 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007726 <p>[0-90) for first angle,<wbr/> [0-360) for second</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007727 </td>
7728
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007729 <td class="entry_tags">
7730 <ul class="entry_tags">
7731 <li><a href="#tag_ADV">ADV</a></li>
7732 </ul>
7733 </td>
7734
7735 </tr>
7736 <tr class="entries_header">
7737 <th class="th_details" colspan="5">Details</th>
7738 </tr>
7739 <tr class="entry_cont">
7740 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007741 <p>Examples:</p>
7742<p>(0,<wbr/>0) means that the camera optical axis
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007743is perpendicular to the display surface;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007744<p>(45,<wbr/>0) means that the camera points 45 degrees up when
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007745device is held upright;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007746<p>(45,<wbr/>90) means the camera points 45 degrees to the right when
7747the device is held upright.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007748<p>Use FACING field to determine perpendicular outgoing
Igor Murashkin0b080452013-12-27 15:30:25 -08007749direction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007750 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007751 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007752
7753
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007754 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7755 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007756
7757
7758 <tr class="entry" id="static_android.lens.position">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007759 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007760 android.<wbr/>lens.<wbr/>position
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007761 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007762 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007763 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007764 <span class="entry_type_container">x</span>
7765
7766 <span class="entry_type_array">
7767 3, location in mm, in the sensor coordinate
7768 system
7769 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007770 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007771
7772
7773 </td> <!-- entry_type -->
7774
7775 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007776 <p>Coordinates of camera optical axis on
7777device</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007778 </td>
7779
7780 <td class="entry_units">
7781 </td>
7782
7783 <td class="entry_range">
7784 </td>
7785
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007786 <td class="entry_tags">
7787 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007788 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007789 </ul>
7790 </td>
7791
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007792 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007793
7794
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007795 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7796 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007797
7798
7799
7800 <!-- end of kind -->
7801 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007802 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007803
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007804 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007805 <tr>
7806 <th class="th_name">Property Name</th>
7807 <th class="th_type">Type</th>
7808 <th class="th_description">Description</th>
7809 <th class="th_units">Units</th>
7810 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007811 <th class="th_tags">Tags</th>
7812 </tr>
7813 </thead>
7814
7815 <tbody>
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826 <tr class="entry" id="dynamic_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007827 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007828 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007829 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007830 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007831 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007832
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007833 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007834
7835
7836 </td> <!-- entry_type -->
7837
7838 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08007839 <p>The ratio of lens focal length to the effective
7840aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007841 </td>
7842
7843 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007844 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007845 </td>
7846
7847 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007848 <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 -08007849 </td>
7850
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007851 <td class="entry_tags">
7852 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007853 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007854 </ul>
7855 </td>
7856
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007857 </tr>
7858 <tr class="entries_header">
7859 <th class="th_details" colspan="5">Details</th>
7860 </tr>
7861 <tr class="entry_cont">
7862 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007863 <p>This will only be supported on the camera devices that
7864have variable aperture lens.<wbr/> The aperture value can only be
7865one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
7866<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
7867this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
7868<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
7869to achieve manual exposure control.<wbr/></p>
7870<p>The requested aperture value may take several frames to reach the
7871requested value; the camera device will report the current (intermediate)
Zhijun He5169ce12014-01-24 16:48:25 -08007872aperture size in capture result metadata while the aperture is changing.<wbr/>
7873While 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 -08007874<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
7875the ON modes,<wbr/> this will be overridden by the camera device
7876auto-exposure algorithm,<wbr/> the overridden values are then provided
7877back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007878 </td>
7879 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007880
7881
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007882 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7883 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007884
7885
7886 <tr class="entry" id="dynamic_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007887 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007888 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007889 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007890 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007891 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007892
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007893 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007894
7895
7896 </td> <!-- entry_type -->
7897
7898 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007899 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007900 </td>
7901
7902 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007903 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007904 </td>
7905
7906 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007907 <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 -08007908 </td>
7909
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007910 <td class="entry_tags">
7911 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007912 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007913 </ul>
7914 </td>
7915
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007916 </tr>
7917 <tr class="entries_header">
7918 <th class="th_details" colspan="5">Details</th>
7919 </tr>
7920 <tr class="entry_cont">
7921 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007922 <p>This will not be supported on most camera devices.<wbr/> On devices
7923where this is supported,<wbr/> this may only be set to one of the
7924values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
7925<p>Lens filters are typically used to lower the amount of light the
7926sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
7927step is the standard logarithmic representation,<wbr/> which are
7928non-negative,<wbr/> and inversely proportional to the amount of light
7929hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
7930in no reduction of the incoming light,<wbr/> and setting this to 2 would
7931mean that the filter is set to reduce incoming light by two stops
7932(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08007933<p>It may take several frames before the lens filter density changes
7934to the requested value.<wbr/> While the filter density is still changing,<wbr/>
7935<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 -08007936 </td>
7937 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007938
7939
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007940 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7941 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007942
7943
7944 <tr class="entry" id="dynamic_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007945 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007946 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007947 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007948 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007949 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007950
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007951 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007952
7953
7954 </td> <!-- entry_type -->
7955
7956 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007957 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007958 </td>
7959
7960 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007961 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007962 </td>
7963
7964 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007965 <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 -08007966 </td>
7967
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007968 <td class="entry_tags">
7969 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007970 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007971 </ul>
7972 </td>
7973
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007974 </tr>
7975 <tr class="entries_header">
7976 <th class="th_details" colspan="5">Details</th>
7977 </tr>
7978 <tr class="entry_cont">
7979 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007980 <p>This setting controls the physical focal length of the camera
7981device's lens.<wbr/> Changing the focal length changes the field of
7982view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7983<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
7984setting won't be applied instantaneously,<wbr/> and it may take several
Zhijun He5169ce12014-01-24 16:48:25 -08007985frames before the lens can change to the requested focal length.<wbr/>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007986While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7987be set to MOVING.<wbr/></p>
7988<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007989 </td>
7990 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007991
7992
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007993 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7994 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007995
7996
7997 <tr class="entry" id="dynamic_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007998 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007999 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008000 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008001 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008002 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008003
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008004 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008005
8006
8007 </td> <!-- entry_type -->
8008
8009 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008010 <p>Distance to plane of sharpest focus,<wbr/>
8011measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008012 </td>
8013
8014 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008015 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008016 </td>
8017
8018 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08008019 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008020 </td>
8021
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008022 <td class="entry_tags">
8023 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008024 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008025 </ul>
8026 </td>
8027
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008028 </tr>
8029 <tr class="entries_header">
8030 <th class="th_details" colspan="5">Details</th>
8031 </tr>
8032 <tr class="entry_cont">
8033 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008034 <p>Should be zero for fixed-focus cameras</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008035 </td>
8036 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008037
8038
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008039 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8040 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008041
8042
8043 <tr class="entry" id="dynamic_android.lens.focusRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008044 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008045 android.<wbr/>lens.<wbr/>focus<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008046 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008047 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008048 <span class="entry_type_name">float</span>
Zhijun He50451ad2013-09-26 10:27:47 -07008049 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008050
Zhijun He50451ad2013-09-26 10:27:47 -07008051 <span class="entry_type_array">
8052 2
8053 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008054 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08008055 <div class="entry_type_notes">Range of scene distances that are in focus</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008056
8057
8058 </td> <!-- entry_type -->
8059
8060 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008061 <p>The range of scene distances that are in
8062sharp focus (depth of field)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008063 </td>
8064
8065 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008066 pair of focus distances in diopters: (near,<wbr/>
8067 far)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008068 </td>
8069
8070 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08008071 <p>&gt;=0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008072 </td>
8073
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008074 <td class="entry_tags">
8075 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008076 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008077 </ul>
8078 </td>
8079
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008080 </tr>
8081 <tr class="entries_header">
8082 <th class="th_details" colspan="5">Details</th>
8083 </tr>
8084 <tr class="entry_cont">
8085 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008086 <p>If variable focus not supported,<wbr/> can still report
8087fixed depth of field range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008088 </td>
8089 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008090
8091
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008092 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8093 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008094
8095
8096 <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008097 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008098 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008099 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008100 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008101 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008102
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008103 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008104
8105 <ul class="entry_type_enum">
8106 <li>
8107 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008108 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008109 </li>
8110 <li>
8111 <span class="entry_type_enum_name">ON</span>
8112 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008113 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008114 </li>
8115 </ul>
8116
8117 </td> <!-- entry_type -->
8118
8119 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08008120 <p>Sets whether the camera device uses optical image stabilization (OIS)
8121when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008122 </td>
8123
8124 <td class="entry_units">
8125 </td>
8126
8127 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08008128 <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 -08008129 </td>
8130
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008131 <td class="entry_tags">
8132 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008133 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008134 </ul>
8135 </td>
8136
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008137 </tr>
8138 <tr class="entries_header">
8139 <th class="th_details" colspan="5">Details</th>
8140 </tr>
8141 <tr class="entry_cont">
8142 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08008143 <p>OIS is used to compensate for motion blur due to small movements of
8144the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
8145use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
8146allows for longer exposure times before camera shake becomes
8147apparent.<wbr/></p>
8148<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008149 </td>
8150 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008151
8152
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008153 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8154 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008155
8156
8157 <tr class="entry" id="dynamic_android.lens.state">
Zhijun He5169ce12014-01-24 16:48:25 -08008158 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008159 android.<wbr/>lens.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008160 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008161 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008162 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008163
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008164 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008165
8166 <ul class="entry_type_enum">
8167 <li>
8168 <span class="entry_type_enum_name">STATIONARY</span>
Zhijun He5169ce12014-01-24 16:48:25 -08008169 <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
8170android.<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 -08008171 </li>
Igor Murashkin0e323a12013-09-06 11:50:48 -07008172 <li>
8173 <span class="entry_type_enum_name">MOVING</span>
Zhijun He5169ce12014-01-24 16:48:25 -08008174 <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
8175android.<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 -07008176 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008177 </ul>
8178
8179 </td> <!-- entry_type -->
8180
8181 <td class="entry_description">
Zhijun He5169ce12014-01-24 16:48:25 -08008182 <p>Current lens status.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008183 </td>
8184
8185 <td class="entry_units">
8186 </td>
8187
8188 <td class="entry_range">
8189 </td>
8190
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008191 <td class="entry_tags">
8192 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008193 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008194 </ul>
8195 </td>
8196
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008197 </tr>
Zhijun He5169ce12014-01-24 16:48:25 -08008198 <tr class="entries_header">
8199 <th class="th_details" colspan="5">Details</th>
8200 </tr>
8201 <tr class="entry_cont">
8202 <td class="entry_details" colspan="5">
8203 <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/>
8204<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/>
8205they may take several frames to reach the requested values.<wbr/> This state indicates
8206the current status of the lens parameters.<wbr/></p>
8207<p>When the state is STATIONARY,<wbr/> the lens parameters are not changing.<wbr/> This could be
8208either because the parameters are all fixed,<wbr/> or because the lens has had enough
8209time to reach the most recently-requested values.<wbr/>
8210If all these lens parameters are not changable for a camera device,<wbr/> as listed below:</p>
8211<ul>
8212<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
8213<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> parameter will always be 0.<wbr/></li>
8214<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/>
8215which means the optical zoom is not supported.<wbr/></li>
8216<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>
8217<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>
8218</ul>
8219<p>Then this state will always be STATIONARY.<wbr/></p>
8220<p>When the state is MOVING,<wbr/> it indicates that at least one of the lens parameters
8221is changing.<wbr/></p>
8222 </td>
8223 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008224
8225
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008226 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8227 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008228
8229
8230
8231 <!-- end of kind -->
8232 </tbody>
8233
8234 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008235 <tr><td colspan="6" id="section_noiseReduction" class="section">noiseReduction</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008236
8237
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008238 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008239
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008240 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008241 <tr>
8242 <th class="th_name">Property Name</th>
8243 <th class="th_type">Type</th>
8244 <th class="th_description">Description</th>
8245 <th class="th_units">Units</th>
8246 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008247 <th class="th_tags">Tags</th>
8248 </tr>
8249 </thead>
8250
8251 <tbody>
8252
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262 <tr class="entry" id="controls_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008263 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008264 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008265 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008266 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008267 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008268
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008269 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008270
8271 <ul class="entry_type_enum">
8272 <li>
8273 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008274 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008275 </li>
8276 <li>
8277 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008278 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8279output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008280 </li>
8281 <li>
8282 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008283 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8284quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008285 </li>
8286 </ul>
8287
8288 </td> <!-- entry_type -->
8289
8290 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008291 <p>Mode of operation for the noise reduction
8292algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008293 </td>
8294
8295 <td class="entry_units">
8296 </td>
8297
8298 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008299 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008300 </td>
8301
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008302 <td class="entry_tags">
8303 <ul class="entry_tags">
8304 <li><a href="#tag_V1">V1</a></li>
8305 </ul>
8306 </td>
8307
8308 </tr>
8309 <tr class="entries_header">
8310 <th class="th_details" colspan="5">Details</th>
8311 </tr>
8312 <tr class="entry_cont">
8313 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008314 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8315will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008316<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8317will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8318will use the highest-quality noise filtering algorithms,<wbr/>
8319even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008320slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008321 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008322 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008323
8324
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008325 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8326 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008327
8328
8329 <tr class="entry" id="controls_android.noiseReduction.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008330 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008331 android.<wbr/>noise<wbr/>Reduction.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008332 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008333 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008334 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008335
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008336 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008337
8338
8339 </td> <!-- entry_type -->
8340
8341 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008342 <p>Control the amount of noise reduction
8343applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008344 </td>
8345
8346 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008347 1-10; 10 is max noise reduction
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008348 </td>
8349
8350 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008351 <p>1 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008352 </td>
8353
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008354 <td class="entry_tags">
8355 </td>
8356
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008357 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008358
8359
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008360 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8361 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008362
8363
8364
8365 <!-- end of kind -->
8366 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008367 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008368
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008369 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008370 <tr>
8371 <th class="th_name">Property Name</th>
8372 <th class="th_type">Type</th>
8373 <th class="th_description">Description</th>
8374 <th class="th_units">Units</th>
8375 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008376 <th class="th_tags">Tags</th>
8377 </tr>
8378 </thead>
8379
8380 <tbody>
8381
8382
8383
8384
8385
8386
8387
8388
8389
8390
8391 <tr class="entry" id="dynamic_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008392 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008393 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008394 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008395 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008396 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008397
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008398 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008399
8400 <ul class="entry_type_enum">
8401 <li>
8402 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008403 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008404 </li>
8405 <li>
8406 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008407 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8408output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008409 </li>
8410 <li>
8411 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008412 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8413quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008414 </li>
8415 </ul>
8416
8417 </td> <!-- entry_type -->
8418
8419 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008420 <p>Mode of operation for the noise reduction
8421algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008422 </td>
8423
8424 <td class="entry_units">
8425 </td>
8426
8427 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008428 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008429 </td>
8430
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008431 <td class="entry_tags">
8432 <ul class="entry_tags">
8433 <li><a href="#tag_V1">V1</a></li>
8434 </ul>
8435 </td>
8436
8437 </tr>
8438 <tr class="entries_header">
8439 <th class="th_details" colspan="5">Details</th>
8440 </tr>
8441 <tr class="entry_cont">
8442 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008443 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8444will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008445<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8446will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8447will use the highest-quality noise filtering algorithms,<wbr/>
8448even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008449slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008450 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008451 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008452
8453
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008454 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8455 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008456
8457
8458
8459 <!-- end of kind -->
8460 </tbody>
8461
8462 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008463 <tr><td colspan="6" id="section_quirks" class="section">quirks</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008464
8465
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008466 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008467
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008468 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008469 <tr>
8470 <th class="th_name">Property Name</th>
8471 <th class="th_type">Type</th>
8472 <th class="th_description">Description</th>
8473 <th class="th_units">Units</th>
8474 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008475 <th class="th_tags">Tags</th>
8476 </tr>
8477 </thead>
8478
8479 <tbody>
8480
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490 <tr class="entry" id="static_android.quirks.meteringCropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008491 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008492 android.<wbr/>quirks.<wbr/>metering<wbr/>Crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008493 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008494 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008495 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008496
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008497 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008498
8499
8500 </td> <!-- entry_type -->
8501
8502 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008503 <p>If set to 1,<wbr/> the camera service does not
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008504scale 'normalized' coordinates with respect to the crop
Igor Murashkin0b080452013-12-27 15:30:25 -08008505region.<wbr/> This applies to metering input (a{e,<wbr/>f,<wbr/>wb}Region
8506and output (face rectangles).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008507 </td>
8508
8509 <td class="entry_units">
8510 </td>
8511
8512 <td class="entry_range">
8513 </td>
8514
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008515 <td class="entry_tags">
8516 </td>
8517
8518 </tr>
8519 <tr class="entries_header">
8520 <th class="th_details" colspan="5">Details</th>
8521 </tr>
8522 <tr class="entry_cont">
8523 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008524 <p>Normalized coordinates refer to those in the
8525(-1000,<wbr/>1000) range mentioned in the
8526android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008527<p>HAL implementations should instead always use and emit
Igor Murashkin0b080452013-12-27 15:30:25 -08008528sensor array-relative coordinates for all region data.<wbr/> Does
8529not need to be listed in static metadata.<wbr/> Support will be
8530removed in future versions of camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008531 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008532 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008533
8534
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008535 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8536 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008537
8538
8539 <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008540 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008541 android.<wbr/>quirks.<wbr/>trigger<wbr/>Af<wbr/>With<wbr/>Auto
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008542 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008543 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008544 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008545
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008546 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008547
8548
8549 </td> <!-- entry_type -->
8550
8551 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008552 <p>If set to 1,<wbr/> then the camera service always
8553switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF
8554trigger.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008555 </td>
8556
8557 <td class="entry_units">
8558 </td>
8559
8560 <td class="entry_range">
8561 </td>
8562
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008563 <td class="entry_tags">
8564 </td>
8565
8566 </tr>
8567 <tr class="entries_header">
8568 <th class="th_details" colspan="5">Details</th>
8569 </tr>
8570 <tr class="entry_cont">
8571 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008572 <p>HAL implementations should implement AF trigger
8573modes for AUTO,<wbr/> MACRO,<wbr/> CONTINUOUS_<wbr/>FOCUS,<wbr/> and
8574CONTINUOUS_<wbr/>PICTURE modes instead of using this flag.<wbr/> Does
8575not need to be listed in static metadata.<wbr/> Support will be
8576removed in future versions of camera service</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008577 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008578 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008579
8580
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008581 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8582 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008583
8584
8585 <tr class="entry" id="static_android.quirks.useZslFormat">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008586 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008587 android.<wbr/>quirks.<wbr/>use<wbr/>Zsl<wbr/>Format
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008588 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008589 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008590 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008591
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008592 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008593
8594
8595 </td> <!-- entry_type -->
8596
8597 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008598 <p>If set to 1,<wbr/> the camera service uses
8599CAMERA2_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>ZSL instead of
8600HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED for the zero
8601shutter lag stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008602 </td>
8603
8604 <td class="entry_units">
8605 </td>
8606
8607 <td class="entry_range">
8608 </td>
8609
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008610 <td class="entry_tags">
8611 </td>
8612
8613 </tr>
8614 <tr class="entries_header">
8615 <th class="th_details" colspan="5">Details</th>
8616 </tr>
8617 <tr class="entry_cont">
8618 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008619 <p>HAL implementations should use gralloc usage flags
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008620to determine that a stream will be used for
Igor Murashkin0b080452013-12-27 15:30:25 -08008621zero-shutter-lag,<wbr/> instead of relying on an explicit
8622format setting.<wbr/> Does not need to be listed in static
8623metadata.<wbr/> Support will be removed in future versions of
8624camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008625 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008626 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008627
8628
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008629 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8630 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008631
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008632
8633 <tr class="entry" id="static_android.quirks.usePartialResult">
Igor Murashkin7761a222014-01-27 16:06:38 -08008634 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008635 android.<wbr/>quirks.<wbr/>use<wbr/>Partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008636 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008637 <td class="entry_type">
8638 <span class="entry_type_name">byte</span>
8639
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008640 <span class="entry_type_visibility"> [hidden]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008641
8642
8643 </td> <!-- entry_type -->
8644
8645 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008646 <p>If set to 1,<wbr/> the HAL will always split result
8647metadata for a single capture into multiple buffers,<wbr/>
8648returned using multiple process_<wbr/>capture_<wbr/>result calls.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008649 </td>
8650
8651 <td class="entry_units">
8652 </td>
8653
8654 <td class="entry_range">
Igor Murashkin7761a222014-01-27 16:06:38 -08008655 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008656 </td>
8657
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008658 <td class="entry_tags">
8659 </td>
8660
8661 </tr>
8662 <tr class="entries_header">
8663 <th class="th_details" colspan="5">Details</th>
8664 </tr>
8665 <tr class="entry_cont">
8666 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008667 <p>Does not need to be listed in static
8668metadata.<wbr/> Support for partial results will be reworked in
8669future versions of camera service.<wbr/> This quirk will stop
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008670working at that point; DO NOT USE without careful
Igor Murashkin0b080452013-12-27 15:30:25 -08008671consideration of future support.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008672 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008673 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008674
Igor Murashkin7761a222014-01-27 16:06:38 -08008675 <tr class="entries_header">
8676 <th class="th_details" colspan="5">HAL Implementation Details</th>
8677 </tr>
8678 <tr class="entry_cont">
8679 <td class="entry_details" colspan="5">
8680 <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
8681for information on how to implement partial results.<wbr/></p>
8682 </td>
8683 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008684
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008685 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8686 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008687
8688
8689
8690 <!-- end of kind -->
8691 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008692 <tr><td colspan="6" class="kind">dynamic</td></tr>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008693
8694 <thead class="entries_header">
8695 <tr>
8696 <th class="th_name">Property Name</th>
8697 <th class="th_type">Type</th>
8698 <th class="th_description">Description</th>
8699 <th class="th_units">Units</th>
8700 <th class="th_range">Range</th>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008701 <th class="th_tags">Tags</th>
8702 </tr>
8703 </thead>
8704
8705 <tbody>
8706
8707
8708
8709
8710
8711
8712
8713
8714
8715
8716 <tr class="entry" id="dynamic_android.quirks.partialResult">
Igor Murashkin7761a222014-01-27 16:06:38 -08008717 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008718 android.<wbr/>quirks.<wbr/>partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008719 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008720 <td class="entry_type">
8721 <span class="entry_type_name entry_type_name_enum">byte</span>
8722
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008723 <span class="entry_type_visibility"> [hidden as boolean]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008724
8725 <ul class="entry_type_enum">
8726 <li>
8727 <span class="entry_type_enum_name">FINAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008728 <span class="entry_type_enum_notes"><p>The last or only metadata result buffer
8729for this capture.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008730 </li>
8731 <li>
8732 <span class="entry_type_enum_name">PARTIAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008733 <span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this
8734capture.<wbr/> More result buffers for this capture will be sent
8735by the HAL,<wbr/> the last of which will be marked
8736FINAL.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008737 </li>
8738 </ul>
8739
8740 </td> <!-- entry_type -->
8741
8742 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008743 <p>Whether a result given to the framework is the
8744final one for the capture,<wbr/> or only a partial that contains a
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008745subset of the full set of dynamic metadata
Igor Murashkin0b080452013-12-27 15:30:25 -08008746values.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008747 </td>
8748
8749 <td class="entry_units">
8750 </td>
8751
8752 <td class="entry_range">
Igor Murashkin7761a222014-01-27 16:06:38 -08008753 <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 -07008754 </td>
8755
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008756 <td class="entry_tags">
8757 </td>
8758
8759 </tr>
8760 <tr class="entries_header">
8761 <th class="th_details" colspan="5">Details</th>
8762 </tr>
8763 <tr class="entry_cont">
8764 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008765 <p>The entries in the result metadata buffers for a
8766single capture may not overlap,<wbr/> except for this entry.<wbr/> The
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008767FINAL buffers must retain FIFO ordering relative to the
Igor Murashkin0b080452013-12-27 15:30:25 -08008768requests that generate them,<wbr/> so the FINAL buffer for frame 3 must
8769always be sent to the framework after the FINAL buffer for frame 2,<wbr/> and
8770before the FINAL buffer for frame 4.<wbr/> PARTIAL buffers may be returned
8771in any order relative to other frames,<wbr/> but all PARTIAL buffers for a given
8772capture must arrive before the FINAL buffer for that capture.<wbr/> This entry may
8773only be used by the HAL if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008774 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008775 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008776
Igor Murashkin7761a222014-01-27 16:06:38 -08008777 <tr class="entries_header">
8778 <th class="th_details" colspan="5">HAL Implementation Details</th>
8779 </tr>
8780 <tr class="entry_cont">
8781 <td class="entry_details" colspan="5">
8782 <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
8783for information on how to implement partial results.<wbr/></p>
8784 </td>
8785 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008786
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008787 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8788 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008789
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008790
8791
8792 <!-- end of kind -->
8793 </tbody>
8794
8795 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008796 <tr><td colspan="6" id="section_request" class="section">request</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008797
8798
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008799 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008800
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008801 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008802 <tr>
8803 <th class="th_name">Property Name</th>
8804 <th class="th_type">Type</th>
8805 <th class="th_description">Description</th>
8806 <th class="th_units">Units</th>
8807 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008808 <th class="th_tags">Tags</th>
8809 </tr>
8810 </thead>
8811
8812 <tbody>
8813
8814
8815
8816
8817
8818
8819
8820
8821
8822
8823 <tr class="entry" id="controls_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008824 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008825 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008826 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008827 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008828 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008829
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008830 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008831
8832
8833 </td> <!-- entry_type -->
8834
8835 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008836 <p>A frame counter set by the framework.<wbr/> Must
8837be maintained unchanged in output frame.<wbr/> This value monotonically
8838increases with every new result (that is,<wbr/> each new result has a unique
8839frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008840 </td>
8841
8842 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008843 incrementing integer
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008844 </td>
8845
8846 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008847 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008848 </td>
8849
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008850 <td class="entry_tags">
8851 </td>
8852
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008853 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008854
8855
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008856 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8857 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008858
8859
8860 <tr class="entry" id="controls_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008861 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008862 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008863 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008864 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008865 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008866
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008867 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008868
8869
8870 </td> <!-- entry_type -->
8871
8872 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008873 <p>An application-specified ID for the current
8874request.<wbr/> Must be maintained unchanged in output
8875frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008876 </td>
8877
8878 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008879 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008880 </td>
8881
8882 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008883 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008884 </td>
8885
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008886 <td class="entry_tags">
8887 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008888 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008889 </ul>
8890 </td>
8891
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008892 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008893
8894
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008895 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8896 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008897
8898
8899 <tr class="entry" id="controls_android.request.inputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008900 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008901 android.<wbr/>request.<wbr/>input<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008902 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008903 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07008904 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008905 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008906
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008907 <span class="entry_type_array">
8908 n
8909 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008910 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008911
8912
8913 </td> <!-- entry_type -->
8914
8915 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008916 <p>List which camera reprocess stream is used
8917for the source of reprocessing data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008918 </td>
8919
8920 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008921 List of camera reprocess stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008922 </td>
8923
8924 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008925 <p>Typically,<wbr/> only one entry allowed,<wbr/> must be a valid
8926reprocess stream ID.<wbr/></p>
8927<p>If android.<wbr/>jpeg.<wbr/>needs<wbr/>Thumbnail is set,<wbr/> then multiple
8928reprocess streams may be included in a single request; they
8929must be different scaled versions of the same image.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008930 </td>
8931
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008932 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008933 <ul class="entry_tags">
8934 <li><a href="#tag_HAL2">HAL2</a></li>
8935 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008936 </td>
8937
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008938 </tr>
8939 <tr class="entries_header">
8940 <th class="th_details" colspan="5">Details</th>
8941 </tr>
8942 <tr class="entry_cont">
8943 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008944 <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> ==
Igor Murashkin0b080452013-12-27 15:30:25 -08008945REPROCESS.<wbr/> Ignored otherwise</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008946 </td>
8947 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008948
8949
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008950 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8951 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008952
8953
8954 <tr class="entry" id="controls_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008955 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008956 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008957 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008958 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008959 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008960
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008961 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008962
8963 <ul class="entry_type_enum">
8964 <li>
8965 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008966 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
8967for application-bound buffer data.<wbr/> If no
8968application-bound streams exist,<wbr/> no frame should be
8969placed in the output frame queue.<wbr/> If such streams
8970exist,<wbr/> a frame should be placed on the output queue
8971with null metadata but with the necessary output buffer
8972information.<wbr/> Timestamp information should still be
8973included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008974 </li>
8975 <li>
8976 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008977 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
8978only be produced if they are separately
8979enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008980 </li>
8981 </ul>
8982
8983 </td> <!-- entry_type -->
8984
8985 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008986 <p>How much metadata to produce on
8987output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008988 </td>
8989
8990 <td class="entry_units">
8991 </td>
8992
8993 <td class="entry_range">
8994 </td>
8995
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008996 <td class="entry_tags">
8997 </td>
8998
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008999 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009000
9001
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009002 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9003 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009004
9005
9006 <tr class="entry" id="controls_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009007 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009008 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009009 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009010 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009011 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009012 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009013
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009014 <span class="entry_type_array">
9015 n
9016 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009017 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009018
9019
9020 </td> <!-- entry_type -->
9021
9022 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009023 <p>Lists which camera output streams image data
9024from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009025 </td>
9026
9027 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009028 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009029 </td>
9030
9031 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009032 <p>List must only include streams that have been
9033created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009034 </td>
9035
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009036 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009037 <ul class="entry_tags">
9038 <li><a href="#tag_HAL2">HAL2</a></li>
9039 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009040 </td>
9041
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009042 </tr>
9043 <tr class="entries_header">
9044 <th class="th_details" colspan="5">Details</th>
9045 </tr>
9046 <tr class="entry_cont">
9047 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009048 <p>If no output streams are listed,<wbr/> then the image
9049data should simply be discarded.<wbr/> The image data must
9050still be captured for metadata and statistics production,<wbr/>
9051and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009052 </td>
9053 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009054
9055
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009056 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9057 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009058
9059
9060 <tr class="entry" id="controls_android.request.type">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009061 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009062 android.<wbr/>request.<wbr/>type
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009063 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009064 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009065 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009066
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009067 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009068
9069 <ul class="entry_type_enum">
9070 <li>
9071 <span class="entry_type_enum_name">CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009072 <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
9073and process it according to the
9074settings</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009075 </li>
9076 <li>
9077 <span class="entry_type_enum_name">REPROCESS</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009078 <span class="entry_type_enum_notes"><p>Process previously captured data; the
9079android.<wbr/>request.<wbr/>input<wbr/>Stream parameter determines the
9080source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
9081needed for reprocessing with [RP]</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009082 </li>
9083 </ul>
9084
9085 </td> <!-- entry_type -->
9086
9087 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009088 <p>The type of the request; either CAPTURE or
9089REPROCESS.<wbr/> For HAL3,<wbr/> this tag is redundant.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009090 </td>
9091
9092 <td class="entry_units">
9093 </td>
9094
9095 <td class="entry_range">
9096 </td>
9097
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009098 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009099 <ul class="entry_tags">
9100 <li><a href="#tag_HAL2">HAL2</a></li>
9101 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009102 </td>
9103
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009104 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009105
9106
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009107 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9108 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009109
9110
9111
9112 <!-- end of kind -->
9113 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009114 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009115
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009116 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009117 <tr>
9118 <th class="th_name">Property Name</th>
9119 <th class="th_type">Type</th>
9120 <th class="th_description">Description</th>
9121 <th class="th_units">Units</th>
9122 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009123 <th class="th_tags">Tags</th>
9124 </tr>
9125 </thead>
9126
9127 <tbody>
9128
9129
9130
9131
9132
9133
9134
9135
9136
9137
9138 <tr class="entry" id="static_android.request.maxNumOutputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009139 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009140 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009141 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009142 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009143 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009144 <span class="entry_type_container">x</span>
9145
9146 <span class="entry_type_array">
9147 3
9148 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009149 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009150
9151
9152 </td> <!-- entry_type -->
9153
9154 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009155 <p>How many output streams can be allocated at
9156the same time for each type of stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009157 </td>
9158
9159 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009160 The number of raw sensor streams; the number of
9161 processed,<wbr/> uncompressed streams; and the number of
9162 JPEG-compressed streams
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009163 </td>
9164
9165 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009166 <p>&gt;=1 for Raw and JPEG-compressed stream.<wbr/> &gt;= 3
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009167for processed,<wbr/> uncompressed streams</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009168 </td>
9169
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009170 <td class="entry_tags">
9171 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009172 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009173 </ul>
9174 </td>
9175
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009176 </tr>
9177 <tr class="entries_header">
9178 <th class="th_details" colspan="5">Details</th>
9179 </tr>
9180 <tr class="entry_cont">
9181 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009182 <p>Video snapshot with preview callbacks requires 3
9183processed streams (preview,<wbr/> record,<wbr/> app callbacks) and
9184one JPEG stream (snapshot)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009185 </td>
9186 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009187
9188
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009189 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9190 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009191
9192
9193 <tr class="entry" id="static_android.request.maxNumReprocessStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009194 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009195 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Reprocess<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009196 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009197 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009198 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009199 <span class="entry_type_container">x</span>
9200
9201 <span class="entry_type_array">
9202 1
9203 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009204 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009205
9206
9207 </td> <!-- entry_type -->
9208
9209 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009210 <p>How many reprocessing streams of any type
9211can be allocated at the same time</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009212 </td>
9213
9214 <td class="entry_units">
9215 </td>
9216
9217 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009218 <p>&gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009219 </td>
9220
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009221 <td class="entry_tags">
9222 </td>
9223
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009224 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009225
9226
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009227 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9228 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009229
Igor Murashkina46e02f2014-01-09 17:43:38 -08009230
9231 <tr class="entry" id="static_android.request.pipelineMaxDepth">
9232 <td class="entry_name" rowspan="5">
9233 android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth
9234 </td>
9235 <td class="entry_type">
9236 <span class="entry_type_name">byte</span>
9237
9238 <span class="entry_type_visibility"> [public]</span>
9239
9240
9241 </td> <!-- entry_type -->
9242
9243 <td class="entry_description">
9244 <p>Specifies the number of maximum pipeline stages a frame
9245has to go through from when it's exposed to when it's available
9246to the framework.<wbr/></p>
9247 </td>
9248
9249 <td class="entry_units">
9250 </td>
9251
9252 <td class="entry_range">
9253 </td>
9254
9255 <td class="entry_tags">
9256 </td>
9257
9258 </tr>
9259 <tr class="entries_header">
9260 <th class="th_details" colspan="5">Details</th>
9261 </tr>
9262 <tr class="entry_cont">
9263 <td class="entry_details" colspan="5">
9264 <p>A typical minimum value for this is 2 (one stage to expose,<wbr/>
9265one stage to readout) from the sensor.<wbr/> The ISP then usually adds
9266its own stages to do custom HW processing.<wbr/> Further stages may be
9267added by SW processing.<wbr/></p>
9268<p>Depending on what settings are used (e.<wbr/>g.<wbr/> YUV,<wbr/> JPEG) and what
9269processing is enabled (e.<wbr/>g.<wbr/> face detection),<wbr/> the actual pipeline
9270depth (specified by <a href="#dynamic_android.request.pipelineDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Depth</a>) may be less than
9271the max pipeline depth.<wbr/></p>
9272<p>A pipeline depth of X stages is equivalent to a pipeline latency of
9273X frame intervals.<wbr/></p>
9274<p>This value will be 8 or less.<wbr/></p>
9275 </td>
9276 </tr>
9277
9278 <tr class="entries_header">
9279 <th class="th_details" colspan="5">HAL Implementation Details</th>
9280 </tr>
9281 <tr class="entry_cont">
9282 <td class="entry_details" colspan="5">
9283 <p>This value should be 4 or less.<wbr/></p>
9284 </td>
9285 </tr>
9286
9287 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9288 <!-- end of entry -->
9289
Igor Murashkin2e291102014-01-10 14:18:30 -08009290
9291 <tr class="entry" id="static_android.request.partialResultCount">
9292 <td class="entry_name" rowspan="3">
9293 android.<wbr/>request.<wbr/>partial<wbr/>Result<wbr/>Count
9294 </td>
9295 <td class="entry_type">
9296 <span class="entry_type_name">int32</span>
9297
9298 <span class="entry_type_visibility"> [public]</span>
9299
9300
9301 </td> <!-- entry_type -->
9302
9303 <td class="entry_description">
9304 <p>Optional.<wbr/> Defaults to 1.<wbr/> Defines how many sub-components
9305a result will be composed of.<wbr/></p>
9306 </td>
9307
9308 <td class="entry_units">
9309 </td>
9310
9311 <td class="entry_range">
9312 <p>&gt;= 1</p>
9313 </td>
9314
9315 <td class="entry_tags">
9316 </td>
9317
9318 </tr>
9319 <tr class="entries_header">
9320 <th class="th_details" colspan="5">Details</th>
9321 </tr>
9322 <tr class="entry_cont">
9323 <td class="entry_details" colspan="5">
9324 <p>In order to combat the pipeline latency,<wbr/> partial results
9325may be delivered to the application layer from the camera device as
9326soon as they are available.<wbr/></p>
9327<p>A value of 1 means that partial results are not supported.<wbr/></p>
9328<p>A typical use case for this might be: after requesting an AF lock the
9329new AF state might be available 50% of the way through the pipeline.<wbr/>
9330The camera device could then immediately dispatch this state via a
9331partial result to the framework/<wbr/>application layer,<wbr/> and the rest of
9332the metadata via later partial results.<wbr/></p>
9333 </td>
9334 </tr>
9335
9336
9337 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9338 <!-- end of entry -->
9339
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009340
9341
9342 <!-- end of kind -->
9343 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009344 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009345
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009346 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009347 <tr>
9348 <th class="th_name">Property Name</th>
9349 <th class="th_type">Type</th>
9350 <th class="th_description">Description</th>
9351 <th class="th_units">Units</th>
9352 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009353 <th class="th_tags">Tags</th>
9354 </tr>
9355 </thead>
9356
9357 <tbody>
9358
9359
9360
9361
9362
9363
9364
9365
9366
9367
9368 <tr class="entry" id="dynamic_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009369 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009370 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009371 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009372 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009373 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009374
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009375 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009376
9377
9378 </td> <!-- entry_type -->
9379
9380 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009381 <p>A frame counter set by the framework.<wbr/> This value monotonically
9382increases with every new result (that is,<wbr/> each new result has a unique
9383frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009384 </td>
9385
9386 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009387 count of frames
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009388 </td>
9389
9390 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009391 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009392 </td>
9393
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009394 <td class="entry_tags">
9395 </td>
9396
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009397 </tr>
9398 <tr class="entries_header">
9399 <th class="th_details" colspan="5">Details</th>
9400 </tr>
9401 <tr class="entry_cont">
9402 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009403 <p>Reset on release()</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009404 </td>
9405 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009406
9407
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009408 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9409 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009410
9411
9412 <tr class="entry" id="dynamic_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009413 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009414 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009415 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009416 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009417 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009418
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009419 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009420
9421
9422 </td> <!-- entry_type -->
9423
9424 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009425 <p>An application-specified ID for the current
9426request.<wbr/> Must be maintained unchanged in output
9427frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009428 </td>
9429
9430 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009431 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009432 </td>
9433
9434 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009435 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009436 </td>
9437
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009438 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009439 <ul class="entry_tags">
9440 <li><a href="#tag_V1">V1</a></li>
9441 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009442 </td>
9443
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009444 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009445
9446
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009447 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9448 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009449
9450
9451 <tr class="entry" id="dynamic_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009452 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009453 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009454 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009455 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009456 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009457
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009458 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009459
9460 <ul class="entry_type_enum">
9461 <li>
9462 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009463 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
9464for application-bound buffer data.<wbr/> If no
9465application-bound streams exist,<wbr/> no frame should be
9466placed in the output frame queue.<wbr/> If such streams
9467exist,<wbr/> a frame should be placed on the output queue
9468with null metadata but with the necessary output buffer
9469information.<wbr/> Timestamp information should still be
9470included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009471 </li>
9472 <li>
9473 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009474 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
9475only be produced if they are separately
9476enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009477 </li>
9478 </ul>
9479
9480 </td> <!-- entry_type -->
9481
9482 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009483 <p>How much metadata to produce on
9484output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009485 </td>
9486
9487 <td class="entry_units">
9488 </td>
9489
9490 <td class="entry_range">
9491 </td>
9492
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009493 <td class="entry_tags">
9494 </td>
9495
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009496 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009497
9498
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009499 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9500 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009501
9502
9503 <tr class="entry" id="dynamic_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009504 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009505 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009506 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009507 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009508 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009509 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009510
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009511 <span class="entry_type_array">
9512 n
9513 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009514 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009515
9516
9517 </td> <!-- entry_type -->
9518
9519 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009520 <p>Lists which camera output streams image data
9521from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009522 </td>
9523
9524 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009525 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009526 </td>
9527
9528 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009529 <p>List must only include streams that have been
9530created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009531 </td>
9532
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009533 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009534 <ul class="entry_tags">
9535 <li><a href="#tag_HAL2">HAL2</a></li>
9536 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009537 </td>
9538
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009539 </tr>
9540 <tr class="entries_header">
9541 <th class="th_details" colspan="5">Details</th>
9542 </tr>
9543 <tr class="entry_cont">
9544 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009545 <p>If no output streams are listed,<wbr/> then the image
9546data should simply be discarded.<wbr/> The image data must
9547still be captured for metadata and statistics production,<wbr/>
9548and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009549 </td>
9550 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009551
9552
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009553 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9554 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009555
Igor Murashkina46e02f2014-01-09 17:43:38 -08009556
9557 <tr class="entry" id="dynamic_android.request.pipelineDepth">
9558 <td class="entry_name" rowspan="5">
9559 android.<wbr/>request.<wbr/>pipeline<wbr/>Depth
9560 </td>
9561 <td class="entry_type">
9562 <span class="entry_type_name">byte</span>
9563
9564 <span class="entry_type_visibility"> [public]</span>
9565
9566
9567 </td> <!-- entry_type -->
9568
9569 <td class="entry_description">
9570 <p>Specifies the number of pipeline stages the frame went
9571through from when it was exposed to when the final completed result
9572was available to the framework.<wbr/></p>
9573 </td>
9574
9575 <td class="entry_units">
9576 </td>
9577
9578 <td class="entry_range">
9579 <p>&lt;= <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a></p>
9580 </td>
9581
9582 <td class="entry_tags">
9583 </td>
9584
9585 </tr>
9586 <tr class="entries_header">
9587 <th class="th_details" colspan="5">Details</th>
9588 </tr>
9589 <tr class="entry_cont">
9590 <td class="entry_details" colspan="5">
9591 <p>Depending on what settings are used in the request,<wbr/> and
9592what streams are configured,<wbr/> the data may undergo less processing,<wbr/>
9593and some pipeline stages skipped.<wbr/></p>
9594<p>See <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> for more details.<wbr/></p>
9595 </td>
9596 </tr>
9597
9598 <tr class="entries_header">
9599 <th class="th_details" colspan="5">HAL Implementation Details</th>
9600 </tr>
9601 <tr class="entry_cont">
9602 <td class="entry_details" colspan="5">
9603 <p>This value must always represent the accurate count of how many
9604pipeline stages were actually used.<wbr/></p>
9605 </td>
9606 </tr>
9607
9608 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9609 <!-- end of entry -->
9610
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009611
9612
9613 <!-- end of kind -->
9614 </tbody>
9615
9616 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009617 <tr><td colspan="6" id="section_scaler" class="section">scaler</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009618
9619
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009620 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009621
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009622 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009623 <tr>
9624 <th class="th_name">Property Name</th>
9625 <th class="th_type">Type</th>
9626 <th class="th_description">Description</th>
9627 <th class="th_units">Units</th>
9628 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009629 <th class="th_tags">Tags</th>
9630 </tr>
9631 </thead>
9632
9633 <tbody>
9634
9635
9636
9637
9638
9639
9640
9641
9642
9643
9644 <tr class="entry" id="controls_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009645 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009646 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009647 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009648 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009649 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009650 <span class="entry_type_container">x</span>
9651
9652 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07009653 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009654 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009655 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009656
9657
9658 </td> <!-- entry_type -->
9659
9660 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009661 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
9662<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
9663(width,<wbr/> height).<wbr/> The region of the sensor that is used for
9664output.<wbr/> Each stream must use this rectangle to produce its
9665output,<wbr/> cropping to a smaller region if necessary to
9666maintain the stream's aspect ratio.<wbr/></p>
9667<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009668 </td>
9669
9670 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009671 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
9672 in pixels; (0,<wbr/>0) is top-left corner of
9673 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009674 </td>
9675
9676 <td class="entry_range">
9677 </td>
9678
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009679 <td class="entry_tags">
9680 <ul class="entry_tags">
9681 <li><a href="#tag_BC">BC</a></li>
9682 </ul>
9683 </td>
9684
9685 </tr>
9686 <tr class="entries_header">
9687 <th class="th_details" colspan="5">Details</th>
9688 </tr>
9689 <tr class="entry_cont">
9690 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009691 <p>Any additional per-stream cropping must be done to
9692maximize the final pixel area of the stream.<wbr/></p>
9693<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
9694ratio,<wbr/> then 4:3 streams should use the exact crop
9695region.<wbr/> 16:9 streams should further crop vertically
9696(letterbox).<wbr/></p>
9697<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
9698outputs should crop horizontally (pillarbox),<wbr/> and 16:9
9699streams should match exactly.<wbr/> These additional crops must
9700be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009701<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -08009702times,<wbr/> no matter what the relative aspect ratios of the
9703crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009704corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -08009705larger than active pixel array.<wbr/> Width and height may be
9706rounded to nearest larger supportable width,<wbr/> especially
9707for raw output,<wbr/> where only a few fixed scales may be
9708possible.<wbr/> The width and height of the crop region cannot
9709be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
9710android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
9711activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
9712respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009713 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009714 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009715
9716
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009717 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9718 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009719
9720
9721
9722 <!-- end of kind -->
9723 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009724 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009725
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009726 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009727 <tr>
9728 <th class="th_name">Property Name</th>
9729 <th class="th_type">Type</th>
9730 <th class="th_description">Description</th>
9731 <th class="th_units">Units</th>
9732 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009733 <th class="th_tags">Tags</th>
9734 </tr>
9735 </thead>
9736
9737 <tbody>
9738
9739
9740
9741
9742
9743
9744
9745
9746
9747
9748 <tr class="entry" id="static_android.scaler.availableFormats">
Zhijun Heb8317e22014-01-16 09:47:07 -08009749 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009750 android.<wbr/>scaler.<wbr/>available<wbr/>Formats
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009751 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009752 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009753 <span class="entry_type_name entry_type_name_enum">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009754 <span class="entry_type_container">x</span>
9755
9756 <span class="entry_type_array">
9757 n
9758 </span>
Eino-Ville Talvalad4e240a2013-08-08 12:56:37 -07009759 <span class="entry_type_visibility"> [public as imageFormat]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009760
9761 <ul class="entry_type_enum">
9762 <li>
9763 <span class="entry_type_enum_name">RAW_SENSOR</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009764 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009765 <span class="entry_type_enum_value">0x20</span>
9766 </li>
9767 <li>
9768 <span class="entry_type_enum_name">YV12</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009769 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009770 <span class="entry_type_enum_value">0x32315659</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009771 <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009772 </li>
9773 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009774 <span class="entry_type_enum_name">YCrCb_420_SP</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009775 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009776 <span class="entry_type_enum_value">0x11</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009777 <span class="entry_type_enum_notes"><p>NV21</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009778 </li>
9779 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009780 <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span>
9781 <span class="entry_type_enum_value">0x22</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009782 <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009783 </li>
9784 <li>
9785 <span class="entry_type_enum_name">YCbCr_420_888</span>
9786 <span class="entry_type_enum_value">0x23</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009787 <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009788 </li>
9789 <li>
9790 <span class="entry_type_enum_name">BLOB</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009791 <span class="entry_type_enum_value">0x21</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009792 <span class="entry_type_enum_notes"><p>JPEG format</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009793 </li>
9794 </ul>
9795
9796 </td> <!-- entry_type -->
9797
9798 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009799 <p>The list of image formats that are supported by this
9800camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009801 </td>
9802
9803 <td class="entry_units">
9804 </td>
9805
9806 <td class="entry_range">
9807 </td>
9808
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009809 <td class="entry_tags">
9810 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009811 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009812 </ul>
9813 </td>
9814
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009815 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009816 <tr class="entries_header">
9817 <th class="th_details" colspan="5">Details</th>
9818 </tr>
9819 <tr class="entry_cont">
9820 <td class="entry_details" colspan="5">
9821 <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p>
9822<p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p>
9823 </td>
9824 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009825
Zhijun Heb8317e22014-01-16 09:47:07 -08009826 <tr class="entries_header">
9827 <th class="th_details" colspan="5">HAL Implementation Details</th>
9828 </tr>
9829 <tr class="entry_cont">
9830 <td class="entry_details" colspan="5">
9831 <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
9832system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
9833<p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform
9834gralloc module will select a format based on the usage flags provided
9835by the camera HAL device and the other endpoint of the stream.<wbr/> It is
9836usually used by preview and recording streams,<wbr/> where the application doesn't
9837need access the image data.<wbr/></p>
9838<p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream
9839needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p>
9840<p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p>
9841 </td>
9842 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009843
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009844 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9845 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009846
9847
9848 <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009849 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009850 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009851 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009852 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009853 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009854 <span class="entry_type_container">x</span>
9855
9856 <span class="entry_type_array">
9857 n
9858 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009859 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009860
9861
9862 </td> <!-- entry_type -->
9863
9864 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009865 <p>The minimum frame duration that is supported
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009866for 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 -08009867 </td>
9868
9869 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009870 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009871 </td>
9872
9873 <td class="entry_range">
9874 </td>
9875
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009876 <td class="entry_tags">
9877 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009878 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009879 </ul>
9880 </td>
9881
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009882 </tr>
9883 <tr class="entries_header">
9884 <th class="th_details" colspan="5">Details</th>
9885 </tr>
9886 <tr class="entry_cont">
9887 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009888 <p>This corresponds to the minimum steady-state frame duration when only
9889that JPEG stream is active and captured in a burst,<wbr/> with all
9890processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST.<wbr/></p>
9891<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009892frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -08009893durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009894 </td>
9895 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009896
9897
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009898 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9899 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009900
9901
9902 <tr class="entry" id="static_android.scaler.availableJpegSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -08009903 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009904 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009905 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009906 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009907 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009908 <span class="entry_type_container">x</span>
9909
9910 <span class="entry_type_array">
9911 n x 2
9912 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009913 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009914
9915
9916 </td> <!-- entry_type -->
9917
9918 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009919 <p>The JPEG resolutions that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009920 </td>
9921
9922 <td class="entry_units">
9923 </td>
9924
9925 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009926 </td>
9927
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009928 <td class="entry_tags">
9929 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009930 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009931 </ul>
9932 </td>
9933
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009934 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009935 <tr class="entries_header">
9936 <th class="th_details" colspan="5">Details</th>
9937 </tr>
9938 <tr class="entry_cont">
9939 <td class="entry_details" colspan="5">
9940 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support
9941sensor 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>
9942 </td>
9943 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009944
Zhijun Heb8317e22014-01-16 09:47:07 -08009945 <tr class="entries_header">
9946 <th class="th_details" colspan="5">HAL Implementation Details</th>
9947 </tr>
9948 <tr class="entry_cont">
9949 <td class="entry_details" colspan="5">
9950 <p>The HAL must include sensor maximum resolution
9951(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/>
9952and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p>
9953 </td>
9954 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009955
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009956 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9957 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009958
9959
9960 <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009961 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009962 android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009963 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009964 <td class="entry_type">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07009965 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009966
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009967 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009968
9969
9970 </td> <!-- entry_type -->
9971
9972 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009973 <p>The maximum ratio between active area width
9974and crop region width,<wbr/> or between active area height and
9975crop region height,<wbr/> if the crop region height is larger
9976than width</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009977 </td>
9978
9979 <td class="entry_units">
9980 </td>
9981
9982 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009983 <p>&gt;=1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009984 </td>
9985
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009986 <td class="entry_tags">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07009987 <ul class="entry_tags">
9988 <li><a href="#tag_BC">BC</a></li>
9989 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009990 </td>
9991
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009992 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009993
9994
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009995 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9996 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009997
9998
9999 <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010000 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010001 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010002 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010003 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010004 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010005 <span class="entry_type_container">x</span>
10006
10007 <span class="entry_type_array">
10008 n
10009 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010010 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010011
10012
10013 </td> <!-- entry_type -->
10014
10015 <td class="entry_description">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010016 <p>For each available processed output size (defined in
10017<a href="#static_android.scaler.availableProcessedSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes</a>),<wbr/> this property lists the
10018minimum supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010019 </td>
10020
10021 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010022 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010023 </td>
10024
10025 <td class="entry_range">
10026 </td>
10027
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010028 <td class="entry_tags">
10029 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010030 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010031 </ul>
10032 </td>
10033
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010034 </tr>
10035 <tr class="entries_header">
10036 <th class="th_details" colspan="5">Details</th>
10037 </tr>
10038 <tr class="entry_cont">
10039 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010040 <p>This should correspond to the frame duration when only that processed
10041stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
10042set to FAST.<wbr/></p>
10043<p>When multiple streams are configured,<wbr/> the minimum frame duration will
10044be &gt;= max(individual stream min durations).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010045 </td>
10046 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010047
10048
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.availableProcessedSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -080010054 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010055 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010056 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010057 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010058 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010059 <span class="entry_type_container">x</span>
10060
10061 <span class="entry_type_array">
10062 n x 2
10063 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010064 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010065
10066
10067 </td> <!-- entry_type -->
10068
10069 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010070 <p>The resolutions available for use with
10071processed output streams,<wbr/> such as YV12,<wbr/> NV12,<wbr/> and
10072platform opaque YUV/<wbr/>RGB streams to the GPU or video
Zhijun Heb8317e22014-01-16 09:47:07 -080010073encoders.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010074 </td>
10075
10076 <td class="entry_units">
10077 </td>
10078
10079 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010080 </td>
10081
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010082 <td class="entry_tags">
10083 <ul class="entry_tags">
10084 <li><a href="#tag_BC">BC</a></li>
10085 </ul>
10086 </td>
10087
10088 </tr>
10089 <tr class="entries_header">
10090 <th class="th_details" colspan="5">Details</th>
10091 </tr>
10092 <tr class="entry_cont">
10093 <td class="entry_details" colspan="5">
Zhijun Heb8317e22014-01-16 09:47:07 -080010094 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p>
10095<p>For a given use case,<wbr/> the actual maximum supported resolution
10096may be lower than what is listed here,<wbr/> depending on the destination
10097Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
10098the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
10099smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
10100can provide.<wbr/></p>
10101<p>Please reference the documentation for the image data destination to
10102check if it limits the maximum size for image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010103 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010104 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010105
Zhijun Heb8317e22014-01-16 09:47:07 -080010106 <tr class="entries_header">
10107 <th class="th_details" colspan="5">HAL Implementation Details</th>
10108 </tr>
10109 <tr class="entry_cont">
10110 <td class="entry_details" colspan="5">
10111 <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/>
10112the HAL must include all JPEG sizes listed in android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
10113and each below resolution if it is smaller than or equal to the sensor
10114maximum resolution (if they are not listed in JPEG sizes already):</p>
10115<ul>
10116<li>240p (320 x 240)</li>
10117<li>480p (640 x 480)</li>
10118<li>720p (1280 x 720)</li>
10119<li>1080p (1920 x 1080)</li>
10120</ul>
10121<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/>
10122the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p>
10123 </td>
10124 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010125
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010126 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10127 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010128
10129
10130 <tr class="entry" id="static_android.scaler.availableRawMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010131 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010132 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010133 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010134 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010135 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010136 <span class="entry_type_container">x</span>
10137
10138 <span class="entry_type_array">
10139 n
10140 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010141 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010142
10143
10144 </td> <!-- entry_type -->
10145
10146 <td class="entry_description">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010147 <p>For each available raw output size (defined in
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010148<a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a>),<wbr/> this property lists the minimum
10149supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010150 </td>
10151
10152 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010153 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010154 </td>
10155
10156 <td class="entry_range">
10157 </td>
10158
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010159 <td class="entry_tags">
10160 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010161 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010162 </ul>
10163 </td>
10164
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010165 </tr>
10166 <tr class="entries_header">
10167 <th class="th_details" colspan="5">Details</th>
10168 </tr>
10169 <tr class="entry_cont">
10170 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010171 <p>Should correspond to the frame duration when only the raw stream is
10172active.<wbr/></p>
10173<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010174frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -080010175durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010176 </td>
10177 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010178
10179
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010180 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10181 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010182
10183
10184 <tr class="entry" id="static_android.scaler.availableRawSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010185 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010186 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010187 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010188 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010189 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010190 <span class="entry_type_container">x</span>
10191
10192 <span class="entry_type_array">
10193 n x 2
10194 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010195 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010196
10197
10198 </td> <!-- entry_type -->
10199
10200 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010201 <p>The resolutions available for use with raw
10202sensor output streams,<wbr/> listed as width,<wbr/>
10203height</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010204 </td>
10205
10206 <td class="entry_units">
10207 </td>
10208
10209 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010210 <p>Must include: - sensor maximum resolution</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010211 </td>
10212
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010213 <td class="entry_tags">
10214 </td>
10215
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010216 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010217
10218
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
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010222
10223
10224 <!-- end of kind -->
10225 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010226 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010227
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010228 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010229 <tr>
10230 <th class="th_name">Property Name</th>
10231 <th class="th_type">Type</th>
10232 <th class="th_description">Description</th>
10233 <th class="th_units">Units</th>
10234 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010235 <th class="th_tags">Tags</th>
10236 </tr>
10237 </thead>
10238
10239 <tbody>
10240
10241
10242
10243
10244
10245
10246
10247
10248
10249
10250 <tr class="entry" id="dynamic_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010251 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010252 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010253 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010254 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010255 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010256 <span class="entry_type_container">x</span>
10257
10258 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -070010259 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010260 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010261 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010262
10263
10264 </td> <!-- entry_type -->
10265
10266 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010267 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
10268<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
10269(width,<wbr/> height).<wbr/> The region of the sensor that is used for
10270output.<wbr/> Each stream must use this rectangle to produce its
10271output,<wbr/> cropping to a smaller region if necessary to
10272maintain the stream's aspect ratio.<wbr/></p>
10273<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010274 </td>
10275
10276 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010277 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
10278 in pixels; (0,<wbr/>0) is top-left corner of
10279 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010280 </td>
10281
10282 <td class="entry_range">
10283 </td>
10284
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010285 <td class="entry_tags">
10286 <ul class="entry_tags">
10287 <li><a href="#tag_BC">BC</a></li>
10288 </ul>
10289 </td>
10290
10291 </tr>
10292 <tr class="entries_header">
10293 <th class="th_details" colspan="5">Details</th>
10294 </tr>
10295 <tr class="entry_cont">
10296 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010297 <p>Any additional per-stream cropping must be done to
10298maximize the final pixel area of the stream.<wbr/></p>
10299<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
10300ratio,<wbr/> then 4:3 streams should use the exact crop
10301region.<wbr/> 16:9 streams should further crop vertically
10302(letterbox).<wbr/></p>
10303<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
10304outputs should crop horizontally (pillarbox),<wbr/> and 16:9
10305streams should match exactly.<wbr/> These additional crops must
10306be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010307<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -080010308times,<wbr/> no matter what the relative aspect ratios of the
10309crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010310corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -080010311larger than active pixel array.<wbr/> Width and height may be
10312rounded to nearest larger supportable width,<wbr/> especially
10313for raw output,<wbr/> where only a few fixed scales may be
10314possible.<wbr/> The width and height of the crop region cannot
10315be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
10316android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
10317activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
10318respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010319 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010320 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010321
10322
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010323 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10324 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010325
10326
10327
10328 <!-- end of kind -->
10329 </tbody>
10330
10331 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010332 <tr><td colspan="6" id="section_sensor" class="section">sensor</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010333
10334
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010335 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010336
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010337 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010338 <tr>
10339 <th class="th_name">Property Name</th>
10340 <th class="th_type">Type</th>
10341 <th class="th_description">Description</th>
10342 <th class="th_units">Units</th>
10343 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010344 <th class="th_tags">Tags</th>
10345 </tr>
10346 </thead>
10347
10348 <tbody>
10349
10350
10351
10352
10353
10354
10355
10356
10357
10358
10359 <tr class="entry" id="controls_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010360 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010361 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010362 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010363 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010364 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010365
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010366 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010367
10368
10369 </td> <!-- entry_type -->
10370
10371 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010372 <p>Duration each pixel is exposed to
10373light.<wbr/></p>
10374<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
10375duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010376 </td>
10377
10378 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010379 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010380 </td>
10381
10382 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010383 <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 -080010384 </td>
10385
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010386 <td class="entry_tags">
10387 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010388 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010389 </ul>
10390 </td>
10391
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010392 </tr>
10393 <tr class="entries_header">
10394 <th class="th_details" colspan="5">Details</th>
10395 </tr>
10396 <tr class="entry_cont">
10397 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010398 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010399 </td>
10400 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010401
10402
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010403 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10404 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010405
10406
10407 <tr class="entry" id="controls_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010408 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010409 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010410 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010411 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010412 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010413
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010414 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010415
10416
10417 </td> <!-- entry_type -->
10418
10419 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010420 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010421start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010422 </td>
10423
10424 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010425 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010426 </td>
10427
10428 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010429 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
10430android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
10431is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010432 </td>
10433
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010434 <td class="entry_tags">
10435 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010436 <li><a href="#tag_V1">V1</a></li>
10437 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010438 </ul>
10439 </td>
10440
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010441 </tr>
10442 <tr class="entries_header">
10443 <th class="th_details" colspan="5">Details</th>
10444 </tr>
10445 <tr class="entry_cont">
10446 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010447 <p>The maximum frame rate that can be supported by a camera subsystem is
10448a function of many factors:</p>
10449<ul>
10450<li>Requested resolutions of output image streams</li>
10451<li>Availability of binning /<wbr/> skipping modes on the imager</li>
10452<li>The bandwidth of the imager interface</li>
10453<li>The bandwidth of the various ISP processing blocks</li>
10454</ul>
10455<p>Since these factors can vary greatly between different ISPs and
10456sensors,<wbr/> the camera abstraction tries to represent the bandwidth
10457restrictions with as simple a model as possible.<wbr/></p>
10458<p>The model presented has the following characteristics:</p>
10459<ul>
10460<li>The image sensor is always configured to output the smallest
10461resolution possible given the application's requested output stream
10462sizes.<wbr/> The smallest resolution is defined as being at least as large
10463as the largest requested output stream size; the camera pipeline must
10464never digitally upsample sensor data when the crop region covers the
10465whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
10466resolutions are configured,<wbr/> the sensor can provide a higher frame
10467rate.<wbr/></li>
10468<li>Since any request may use any or all the currently configured
10469output streams,<wbr/> the sensor and ISP must be configured to support
10470scaling a single capture to all the streams at the same time.<wbr/> This
10471means the camera pipeline must be ready to produce the largest
10472requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
10473frame rate of a given configured stream set is governed only by the
10474largest requested stream resolution.<wbr/></li>
10475<li>Using more than one output stream in a request does not affect the
10476frame duration.<wbr/></li>
10477<li>JPEG streams act like processed YUV streams in requests for which
10478they are not included; in requests in which they are directly
10479referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
10480JPEG stream requires the underlying YUV data to always be ready for
10481use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
10482frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
10483<li>The JPEG processor can run concurrently to the rest of the camera
10484pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
10485</ul>
10486<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
10487is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
10488These are used to determine the maximum frame rate /<wbr/> minimum frame
10489duration that is possible for a given stream configuration.<wbr/></p>
10490<p>Specifically,<wbr/> the application can use the following rules to
10491determine the minimum frame duration it can request from the HAL
10492device:</p>
10493<ol>
10494<li>Given the application's currently configured set of output
10495streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
10496<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
10497<code>SP</code>.<wbr/></li>
10498<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
10499count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
10500<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
10501<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
10502no exact match for <code>RP == RJ</code> (in particular there isn't an available
10503processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
10504to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
10505there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
10506the processed resolution closest to <code>RJ</code>.<wbr/></li>
10507<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
10508no exact match for <code>RR == RP</code> (in particular there isn't an available
10509raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
10510or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
10511there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
10512the raw resolution closest to <code>RP</code>.<wbr/></li>
10513<li>Look up the matching minimum frame durations in the property lists
10514<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
10515<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
10516<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
10517minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
10518<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
10519supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
10520<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
10521supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
10522<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
10523the application,<wbr/> then the HAL will have to delay JPEG-using requests
10524whenever the JPEG encoder is still busy processing an older capture.<wbr/>
10525This will happen whenever a JPEG-using request starts capture less
10526than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
10527supported frame duration will vary between the values calculated in
10528#6 and #7.<wbr/></li>
10529</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010530 </td>
10531 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010532
10533
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010534 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10535 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010536
10537
10538 <tr class="entry" id="controls_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010539 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010540 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010541 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010542 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010543 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010544
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010545 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010546
10547
10548 </td> <!-- entry_type -->
10549
10550 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010551 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010552implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080010553below 'maximum analog sensitivity'.<wbr/></p>
10554<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
10555gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010556 </td>
10557
10558 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010559 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010560 </td>
10561
10562 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010563 <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 -080010564 </td>
10565
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010566 <td class="entry_tags">
10567 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010568 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010569 </ul>
10570 </td>
10571
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010572 </tr>
10573 <tr class="entries_header">
10574 <th class="th_details" colspan="5">Details</th>
10575 </tr>
10576 <tr class="entry_cont">
10577 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010578 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010579 </td>
10580 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010581
10582
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010583 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10584 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010585
Igor Murashkina46e02f2014-01-09 17:43:38 -080010586
10587 <tr class="entry" id="controls_android.sensor.testPatternData">
10588 <td class="entry_name" rowspan="5">
10589 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
10590 </td>
10591 <td class="entry_type">
10592 <span class="entry_type_name">int32</span>
10593 <span class="entry_type_container">x</span>
10594
10595 <span class="entry_type_array">
10596 4
10597 </span>
10598 <span class="entry_type_visibility"> [public]</span>
10599
10600
10601 </td> <!-- entry_type -->
10602
10603 <td class="entry_description">
10604 <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
10605when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
10606 </td>
10607
10608 <td class="entry_units">
10609 </td>
10610
10611 <td class="entry_range">
10612 <p>Optional.<wbr/>
10613Must be supported if <a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a> contains
10614SOLID_<wbr/>COLOR.<wbr/></p>
10615 </td>
10616
10617 <td class="entry_tags">
10618 </td>
10619
10620 </tr>
10621 <tr class="entries_header">
10622 <th class="th_details" colspan="5">Details</th>
10623 </tr>
10624 <tr class="entry_cont">
10625 <td class="entry_details" colspan="5">
10626 <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
10627The camera device then uses the most significant X bits
10628that correspond to how many bits are in its Bayer raw sensor
10629output.<wbr/></p>
10630<p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
1063110 most significant bits from each color channel.<wbr/></p>
10632 </td>
10633 </tr>
10634
10635 <tr class="entries_header">
10636 <th class="th_details" colspan="5">HAL Implementation Details</th>
10637 </tr>
10638 <tr class="entry_cont">
10639 <td class="entry_details" colspan="5">
10640
10641 </td>
10642 </tr>
10643
10644 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10645 <!-- end of entry -->
10646
10647
10648 <tr class="entry" id="controls_android.sensor.testPatternMode">
10649 <td class="entry_name" rowspan="5">
10650 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
10651 </td>
10652 <td class="entry_type">
10653 <span class="entry_type_name entry_type_name_enum">int32</span>
10654
10655 <span class="entry_type_visibility"> [public]</span>
10656
10657 <ul class="entry_type_enum">
10658 <li>
10659 <span class="entry_type_enum_name">OFF</span>
10660 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
10661device returns captures from the image sensor.<wbr/></p></span>
10662 </li>
10663 <li>
10664 <span class="entry_type_enum_name">SOLID_COLOR</span>
10665 <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
10666respective color channel provided in
10667<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
10668<p>For example:</p>
10669<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10670</code></pre>
10671<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
10672<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10673</code></pre>
10674<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
10675are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
10676 </li>
10677 <li>
10678 <span class="entry_type_enum_name">COLOR_BARS</span>
10679 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
10680<p>The vertical bars (left-to-right) are as follows:</p>
10681<ul>
10682<li>100% white</li>
10683<li>yellow</li>
10684<li>cyan</li>
10685<li>green</li>
10686<li>magenta</li>
10687<li>red</li>
10688<li>blue</li>
10689<li>black</li>
10690</ul>
10691<p>In general the image would look like the following:</p>
10692<pre><code>W Y C G M R B K
10693W Y C G M R B K
10694W Y C G M R B K
10695W Y C G M R B K
10696W Y C G M R B K
10697.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10698.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10699.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10700
10701(B = Blue,<wbr/> K = Black)
10702</code></pre>
10703<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
10704When this is not possible,<wbr/> the bar size should be rounded
10705down to the nearest integer and the pattern can repeat
10706on the right side.<wbr/></p>
10707<p>Each bar's height must always take up the full sensor
10708pixel array height.<wbr/></p>
10709<p>Each pixel in this test pattern must be set to either
107100% intensity or 100% intensity.<wbr/></p></span>
10711 </li>
10712 <li>
10713 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
10714 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
10715each bar should start at its specified color at the top,<wbr/>
10716and fade to gray at the bottom.<wbr/></p>
10717<p>Furthermore each bar is further subdivided into a left and
10718right half.<wbr/> The left half should have a smooth gradient,<wbr/>
10719and the right half should have a quantized gradient.<wbr/></p>
10720<p>In particular,<wbr/> the right half's should consist of blocks of the
10721same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
10722<p>The least significant bits in the quantized gradient should
10723be copied from the most significant bits of the smooth gradient.<wbr/></p>
10724<p>The height of each bar should always be a multiple of 128.<wbr/>
10725When this is not the case,<wbr/> the pattern should repeat at the bottom
10726of the image.<wbr/></p></span>
10727 </li>
10728 <li>
10729 <span class="entry_type_enum_name">PN9</span>
10730 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
10731generated from a PN9 512-bit sequence (typically implemented
10732in hardware with a linear feedback shift register).<wbr/></p>
10733<p>The generator should be reset at the beginning of each frame,<wbr/>
10734and thus each subsequent raw frame with this test pattern should
10735be exactly the same as the last.<wbr/></p></span>
10736 </li>
10737 <li>
10738 <span class="entry_type_enum_name">CUSTOM1</span>
10739 <span class="entry_type_enum_value">256</span>
10740 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
10741available only on this camera device are at least this numeric
10742value.<wbr/></p>
10743<p>All of the custom test patterns will be static
10744(that is the raw image must not vary from frame to frame).<wbr/></p></span>
10745 </li>
10746 </ul>
10747
10748 </td> <!-- entry_type -->
10749
10750 <td class="entry_description">
10751 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
10752doing a real exposure from the camera.<wbr/></p>
10753 </td>
10754
10755 <td class="entry_units">
10756 </td>
10757
10758 <td class="entry_range">
10759 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
10760<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
10761 </td>
10762
10763 <td class="entry_tags">
10764 </td>
10765
10766 </tr>
10767 <tr class="entries_header">
10768 <th class="th_details" colspan="5">Details</th>
10769 </tr>
10770 <tr class="entry_cont">
10771 <td class="entry_details" colspan="5">
10772 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
10773by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
10774work as normal.<wbr/></p>
10775<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
10776occur (and that the test pattern remain unmodified,<wbr/> since the flash
10777would not actually affect it).<wbr/></p>
10778 </td>
10779 </tr>
10780
10781 <tr class="entries_header">
10782 <th class="th_details" colspan="5">HAL Implementation Details</th>
10783 </tr>
10784 <tr class="entry_cont">
10785 <td class="entry_details" colspan="5">
10786 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
10787<p>The HAL may choose to substitute test patterns from the sensor
10788with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
10789indistinguishable to the ISP whether the data came from the
10790sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
10791 </td>
10792 </tr>
10793
10794 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10795 <!-- end of entry -->
10796
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010797
10798
10799 <!-- end of kind -->
10800 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010801 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010802
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010803 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010804 <tr>
10805 <th class="th_name">Property Name</th>
10806 <th class="th_type">Type</th>
10807 <th class="th_description">Description</th>
10808 <th class="th_units">Units</th>
10809 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010810 <th class="th_tags">Tags</th>
10811 </tr>
10812 </thead>
10813
10814 <tbody>
10815
10816
10817
10818
10819
10820
10821
10822
10823
10824
10825
10826
10827 <tr class="entry" id="static_android.sensor.info.activeArraySize">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010828 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010829 android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010830 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010831 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010832 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010833 <span class="entry_type_container">x</span>
10834
10835 <span class="entry_type_array">
10836 4
10837 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010838 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010839 <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010840
10841
10842 </td> <!-- entry_type -->
10843
10844 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010845 <p>Area of raw data which corresponds to only
Zhijun Hebdc94c42014-01-21 18:28:30 -080010846active pixels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010847 </td>
10848
10849 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010850 </td>
10851
10852 <td class="entry_range">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010853 <p>This array contains <code>(xmin,<wbr/> ymin,<wbr/> width,<wbr/> height)</code>.<wbr/> The <code>(xmin,<wbr/> ymin)</code> must be
10854&gt;= <code>(0,<wbr/>0)</code>.<wbr/> The <code>(width,<wbr/> height)</code> must be &lt;=
10855<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 -080010856 </td>
10857
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010858 <td class="entry_tags">
10859 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010860 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010861 </ul>
10862 </td>
10863
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010864 </tr>
Zhijun Hebdc94c42014-01-21 18:28:30 -080010865 <tr class="entries_header">
10866 <th class="th_details" colspan="5">Details</th>
10867 </tr>
10868 <tr class="entry_cont">
10869 <td class="entry_details" colspan="5">
10870 <p>It is smaller or equal to
10871sensor full pixel array,<wbr/> which could include the black calibration pixels.<wbr/></p>
10872 </td>
10873 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010874
10875
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010876 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10877 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010878
10879
Zhijun He69fc0ea2013-07-17 09:42:58 -070010880 <tr class="entry" id="static_android.sensor.info.sensitivityRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010881 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010882 android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010883 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010884 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010885 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010886 <span class="entry_type_container">x</span>
10887
10888 <span class="entry_type_array">
Zhijun He69fc0ea2013-07-17 09:42:58 -070010889 2
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010890 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010891 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010892 <div class="entry_type_notes">Range of supported sensitivities</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010893
10894
10895 </td> <!-- entry_type -->
10896
10897 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010898 <p>Range of valid sensitivities</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010899 </td>
10900
10901 <td class="entry_units">
10902 </td>
10903
10904 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010905 <p>Min &lt;= 100,<wbr/> Max &gt;= 1600</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010906 </td>
10907
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010908 <td class="entry_tags">
10909 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010910 <li><a href="#tag_BC">BC</a></li>
10911 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010912 </ul>
10913 </td>
10914
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010915 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010916
10917
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010918 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10919 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010920
10921
10922 <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010923 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010924 android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010925 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010926 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010927 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010928
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010929 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010930
10931 <ul class="entry_type_enum">
10932 <li>
10933 <span class="entry_type_enum_name">RGGB</span>
10934 </li>
10935 <li>
10936 <span class="entry_type_enum_name">GRBG</span>
10937 </li>
10938 <li>
10939 <span class="entry_type_enum_name">GBRG</span>
10940 </li>
10941 <li>
10942 <span class="entry_type_enum_name">BGGR</span>
10943 </li>
10944 <li>
10945 <span class="entry_type_enum_name">RGB</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080010946 <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
10947values for each pixel,<wbr/> instead of just 1 16-bit value
10948per pixel.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010949 </li>
10950 </ul>
10951
10952 </td> <!-- entry_type -->
10953
10954 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010955 <p>Arrangement of color filters on sensor;
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010956represents the colors in the top-left 2x2 section of
Igor Murashkin0b080452013-12-27 15:30:25 -080010957the sensor,<wbr/> in reading order</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010958 </td>
10959
10960 <td class="entry_units">
10961 </td>
10962
10963 <td class="entry_range">
10964 </td>
10965
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010966 <td class="entry_tags">
10967 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010968 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010969 </ul>
10970 </td>
10971
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010972 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010973
10974
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010975 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10976 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010977
10978
10979 <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
Igor Murashkin061c6002014-01-27 16:00:26 -080010980 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010981 android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010982 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010983 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010984 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010985 <span class="entry_type_container">x</span>
10986
10987 <span class="entry_type_array">
10988 2
10989 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010990 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010991 <div class="entry_type_notes">nanoseconds</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010992
10993
10994 </td> <!-- entry_type -->
10995
10996 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010997 <p>Range of valid exposure
Igor Murashkin061c6002014-01-27 16:00:26 -080010998times 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 -080010999 </td>
11000
11001 <td class="entry_units">
11002 </td>
11003
11004 <td class="entry_range">
Igor Murashkin061c6002014-01-27 16:00:26 -080011005 <p>Min &lt;= 100e3 (100 us),<wbr/> Max &gt;= 1e9 (1
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011006sec)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011007 </td>
11008
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011009 <td class="entry_tags">
11010 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011011 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011012 </ul>
11013 </td>
11014
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011015 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011016
Igor Murashkin061c6002014-01-27 16:00:26 -080011017 <tr class="entries_header">
11018 <th class="th_details" colspan="5">HAL Implementation Details</th>
11019 </tr>
11020 <tr class="entry_cont">
11021 <td class="entry_details" colspan="5">
11022 <p>The maximum of the range must be at least
110231 second.<wbr/> It should be at least 30 seconds.<wbr/></p>
11024 </td>
11025 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011026
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011027 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11028 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011029
11030
11031 <tr class="entry" id="static_android.sensor.info.maxFrameDuration">
Igor Murashkin061c6002014-01-27 16:00:26 -080011032 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011033 android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011034 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011035 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011036 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011037
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011038 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011039
11040
11041 </td> <!-- entry_type -->
11042
11043 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011044 <p>Maximum possible frame duration (minimum frame
Igor Murashkin061c6002014-01-27 16:00:26 -080011045rate).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011046 </td>
11047
11048 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011049 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011050 </td>
11051
11052 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011053 <p>&gt;= 30e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011054 </td>
11055
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011056 <td class="entry_tags">
11057 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011058 <li><a href="#tag_BC">BC</a></li>
11059 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011060 </ul>
11061 </td>
11062
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011063 </tr>
11064 <tr class="entries_header">
11065 <th class="th_details" colspan="5">Details</th>
11066 </tr>
11067 <tr class="entry_cont">
11068 <td class="entry_details" colspan="5">
Igor Murashkin061c6002014-01-27 16:00:26 -080011069 <p>The largest possible android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
11070that will be accepted by the camera device.<wbr/> Attempting to use
11071frame durations beyond the maximum will result in the frame duration
11072being clipped to the maximum.<wbr/> See that control
11073for a full definition of frame durations.<wbr/></p>
11074<p>Refer to
11075<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>,<wbr/>
11076<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/> and
11077<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a> for the minimum
11078frame duration values.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011079 </td>
11080 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011081
Igor Murashkin061c6002014-01-27 16:00:26 -080011082 <tr class="entries_header">
11083 <th class="th_details" colspan="5">HAL Implementation Details</th>
11084 </tr>
11085 <tr class="entry_cont">
11086 <td class="entry_details" colspan="5">
11087 <p>This value must be at least 1 second.<wbr/> It should be at least 30
11088seconds (30e9 ns).<wbr/></p>
11089<p>android.<wbr/>sensor.<wbr/>max<wbr/>Frame<wbr/>Duration must be greater or equal to the
11090android.<wbr/>sensor.<wbr/>exposure<wbr/>Time<wbr/>Range max value (since exposure time
11091overrides frame duration).<wbr/></p>
11092 </td>
11093 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011094
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011095 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11096 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011097
11098
11099 <tr class="entry" id="static_android.sensor.info.physicalSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011100 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011101 android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011102 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011103 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011104 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011105 <span class="entry_type_container">x</span>
11106
11107 <span class="entry_type_array">
11108 2
11109 </span>
Timothy Knightec817d52013-08-16 16:15:29 -070011110 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011111 <div class="entry_type_notes">width x height in millimeters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011112
11113
11114 </td> <!-- entry_type -->
11115
11116 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011117 <p>The physical dimensions of the full pixel
11118array</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011119 </td>
11120
11121 <td class="entry_units">
11122 </td>
11123
11124 <td class="entry_range">
11125 </td>
11126
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011127 <td class="entry_tags">
11128 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011129 <li><a href="#tag_V1">V1</a></li>
11130 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011131 </ul>
11132 </td>
11133
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011134 </tr>
11135 <tr class="entries_header">
11136 <th class="th_details" colspan="5">Details</th>
11137 </tr>
11138 <tr class="entry_cont">
11139 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011140 <p>Needed for FOV calculation for old API</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011141 </td>
11142 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011143
11144
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011145 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11146 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011147
11148
11149 <tr class="entry" id="static_android.sensor.info.pixelArraySize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011150 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011151 android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011152 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011153 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011154 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011155 <span class="entry_type_container">x</span>
11156
11157 <span class="entry_type_array">
11158 2
11159 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070011160 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011161
11162
11163 </td> <!-- entry_type -->
11164
11165 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011166 <p>Dimensions of full pixel array,<wbr/> possibly
Zhijun Hebdc94c42014-01-21 18:28:30 -080011167including black calibration pixels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011168 </td>
11169
11170 <td class="entry_units">
11171 </td>
11172
11173 <td class="entry_range">
11174 </td>
11175
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011176 <td class="entry_tags">
11177 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011178 <li><a href="#tag_DNG">DNG</a></li>
11179 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011180 </ul>
11181 </td>
11182
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011183 </tr>
11184 <tr class="entries_header">
11185 <th class="th_details" colspan="5">Details</th>
11186 </tr>
11187 <tr class="entry_cont">
11188 <td class="entry_details" colspan="5">
Zhijun Hebdc94c42014-01-21 18:28:30 -080011189 <p>The maximum output resolution for raw format in
11190<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 -080011191 </td>
11192 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011193
11194
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011195 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11196 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011197
11198
11199 <tr class="entry" id="static_android.sensor.info.whiteLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011200 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011201 android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011202 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011203 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011204 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011205
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011206 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011207
11208
11209 </td> <!-- entry_type -->
11210
11211 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011212 <p>Maximum raw value output by
11213sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011214 </td>
11215
11216 <td class="entry_units">
11217 </td>
11218
11219 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011220 <p>&gt; 1024 (10-bit output)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011221 </td>
11222
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011223 <td class="entry_tags">
11224 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011225 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011226 </ul>
11227 </td>
11228
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011229 </tr>
11230 <tr class="entries_header">
11231 <th class="th_details" colspan="5">Details</th>
11232 </tr>
11233 <tr class="entry_cont">
11234 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011235 <p>Defines sensor bit depth (10-14 bits is
11236expected)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011237 </td>
11238 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011239
11240
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011241 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11242 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011243
11244
11245
11246
11247
11248 <tr class="entry" id="static_android.sensor.baseGainFactor">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011249 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011250 android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011251 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011252 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011253 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011254
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011255 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011256
11257
11258 </td> <!-- entry_type -->
11259
11260 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011261 <p>Gain factor from electrons to raw units when
11262ISO=100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011263 </td>
11264
11265 <td class="entry_units">
11266 </td>
11267
11268 <td class="entry_range">
11269 </td>
11270
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011271 <td class="entry_tags">
11272 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011273 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011274 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011275 </ul>
11276 </td>
11277
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011278 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011279
11280
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011281 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11282 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011283
11284
11285 <tr class="entry" id="static_android.sensor.blackLevelPattern">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011286 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011287 android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011288 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011289 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011290 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011291 <span class="entry_type_container">x</span>
11292
11293 <span class="entry_type_array">
11294 4
11295 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011296 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011297 <div class="entry_type_notes">2x2 raw count block</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011298
11299
11300 </td> <!-- entry_type -->
11301
11302 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011303 <p>A fixed black level offset for each of the
11304Bayer mosaic channels</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011305 </td>
11306
11307 <td class="entry_units">
11308 </td>
11309
11310 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011311 <p>&gt;= 0 each</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011312 </td>
11313
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011314 <td class="entry_tags">
11315 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011316 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011317 </ul>
11318 </td>
11319
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011320 </tr>
11321 <tr class="entries_header">
11322 <th class="th_details" colspan="5">Details</th>
11323 </tr>
11324 <tr class="entry_cont">
11325 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011326 <p>As per DNG BlackLevelRepeatDim /<wbr/> BlackLevel
11327tags</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011328 </td>
11329 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011330
11331
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011332 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11333 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011334
11335
11336 <tr class="entry" id="static_android.sensor.calibrationTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011337 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011338 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011339 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011340 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011341 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011342 <span class="entry_type_container">x</span>
11343
11344 <span class="entry_type_array">
11345 9
11346 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011347 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011348 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
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>Per-device calibration on top of color space
11355transform 1</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_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011367 </ul>
11368 </td>
11369
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011370 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011371
11372
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011373 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11374 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011375
11376
11377 <tr class="entry" id="static_android.sensor.calibrationTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011378 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011379 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011380 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011381 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011382 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011383 <span class="entry_type_container">x</span>
11384
11385 <span class="entry_type_array">
11386 9
11387 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011388 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011389 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011390
11391
11392 </td> <!-- entry_type -->
11393
11394 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011395 <p>Per-device calibration on top of color space
11396transform 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011397 </td>
11398
11399 <td class="entry_units">
11400 </td>
11401
11402 <td class="entry_range">
11403 </td>
11404
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011405 <td class="entry_tags">
11406 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011407 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011408 </ul>
11409 </td>
11410
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011411 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011412
11413
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011414 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11415 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011416
11417
11418 <tr class="entry" id="static_android.sensor.colorTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011419 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011420 android.<wbr/>sensor.<wbr/>color<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011421 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011422 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011423 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011424 <span class="entry_type_container">x</span>
11425
11426 <span class="entry_type_array">
11427 9
11428 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011429 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011430 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011431
11432
11433 </td> <!-- entry_type -->
11434
11435 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011436 <p>Linear mapping from XYZ (D50) color space to
11437reference linear sensor color,<wbr/> for first reference
11438illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011439 </td>
11440
11441 <td class="entry_units">
11442 </td>
11443
11444 <td class="entry_range">
11445 </td>
11446
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011447 <td class="entry_tags">
11448 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011449 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011450 </ul>
11451 </td>
11452
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011453 </tr>
11454 <tr class="entries_header">
11455 <th class="th_details" colspan="5">Details</th>
11456 </tr>
11457 <tr class="entry_cont">
11458 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011459 <p>Use as follows XYZ = inv(transform) * clip( (raw -
11460black level(raw) ) /<wbr/> ( white level - max black level) ).<wbr/>
11461At least in the simple case</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011462 </td>
11463 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011464
11465
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011466 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11467 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011468
11469
11470 <tr class="entry" id="static_android.sensor.colorTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011471 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011472 android.<wbr/>sensor.<wbr/>color<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011473 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011474 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011475 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011476 <span class="entry_type_container">x</span>
11477
11478 <span class="entry_type_array">
11479 9
11480 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011481 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011482 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011483
11484
11485 </td> <!-- entry_type -->
11486
11487 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011488 <p>Linear mapping from XYZ (D50) color space to
11489reference linear sensor color,<wbr/> for second reference
11490illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011491 </td>
11492
11493 <td class="entry_units">
11494 </td>
11495
11496 <td class="entry_range">
11497 </td>
11498
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011499 <td class="entry_tags">
11500 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011501 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011502 </ul>
11503 </td>
11504
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011505 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011506
11507
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011508 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11509 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011510
11511
11512 <tr class="entry" id="static_android.sensor.forwardMatrix1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011513 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011514 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011515 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011516 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011517 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011518 <span class="entry_type_container">x</span>
11519
11520 <span class="entry_type_array">
11521 9
11522 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011523 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011524 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011525
11526
11527 </td> <!-- entry_type -->
11528
11529 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011530 <p>Used by DNG for better WB
11531adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011532 </td>
11533
11534 <td class="entry_units">
11535 </td>
11536
11537 <td class="entry_range">
11538 </td>
11539
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011540 <td class="entry_tags">
11541 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011542 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011543 </ul>
11544 </td>
11545
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011546 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011547
11548
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011549 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11550 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011551
11552
11553 <tr class="entry" id="static_android.sensor.forwardMatrix2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011554 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011555 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011556 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011557 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011558 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011559 <span class="entry_type_container">x</span>
11560
11561 <span class="entry_type_array">
11562 9
11563 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011564 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011565 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011566
11567
11568 </td> <!-- entry_type -->
11569
11570 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011571 <p>Used by DNG for better WB
11572adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011573 </td>
11574
11575 <td class="entry_units">
11576 </td>
11577
11578 <td class="entry_range">
11579 </td>
11580
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011581 <td class="entry_tags">
11582 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011583 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011584 </ul>
11585 </td>
11586
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011587 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011588
11589
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011590 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11591 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011592
11593
11594 <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011595 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011596 android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011597 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011598 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011599 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011600
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011601 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011602
11603
11604 </td> <!-- entry_type -->
11605
11606 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011607 <p>Maximum sensitivity that is implemented
Zhijun Hebdc94c42014-01-21 18:28:30 -080011608purely through analog gain.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011609 </td>
11610
11611 <td class="entry_units">
11612 </td>
11613
11614 <td class="entry_range">
11615 </td>
11616
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011617 <td class="entry_tags">
11618 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011619 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011620 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011621 </ul>
11622 </td>
11623
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011624 </tr>
11625 <tr class="entries_header">
11626 <th class="th_details" colspan="5">Details</th>
11627 </tr>
11628 <tr class="entry_cont">
11629 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011630 <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 -080011631equal to this,<wbr/> all applied gain must be analog.<wbr/> For
Zhijun Hebdc94c42014-01-21 18:28:30 -080011632values above this,<wbr/> the gain applied can be a mix of analog and
11633digital.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011634 </td>
11635 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011636
11637
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011638 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11639 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011640
11641
11642 <tr class="entry" id="static_android.sensor.noiseModelCoefficients">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011643 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011644 android.<wbr/>sensor.<wbr/>noise<wbr/>Model<wbr/>Coefficients
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011645 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011646 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011647 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011648 <span class="entry_type_container">x</span>
11649
11650 <span class="entry_type_array">
11651 2
11652 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011653 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011654 <div class="entry_type_notes">float constants A,<wbr/> B for the noise variance model</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011655
11656
11657 </td> <!-- entry_type -->
11658
11659 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011660 <p>Estimation of sensor noise
11661characteristics</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011662 </td>
11663
11664 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011665 var(raw pixel value) = electrons * (baseGainFactor
11666 * iso/<wbr/>100)^2 + A * (baseGainFactor * iso/<wbr/>100)^2 +
11667 B
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011668 </td>
11669
11670 <td class="entry_range">
11671 </td>
11672
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011673 <td class="entry_tags">
11674 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011675 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011676 </ul>
11677 </td>
11678
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011679 </tr>
11680 <tr class="entries_header">
11681 <th class="th_details" colspan="5">Details</th>
11682 </tr>
11683 <tr class="entry_cont">
11684 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011685 <p>A represents sensor read noise before analog
11686amplification; B represents noise from A/<wbr/>D conversion and
11687other circuits after amplification.<wbr/> Both noise sources
11688are assumed to be gaussian,<wbr/> independent,<wbr/> and not to vary
11689across the sensor</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011690 </td>
11691 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011692
11693
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011694 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11695 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011696
11697
11698 <tr class="entry" id="static_android.sensor.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011699 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011700 android.<wbr/>sensor.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011701 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011702 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011703 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011704
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011705 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011706
11707
11708 </td> <!-- entry_type -->
11709
11710 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011711 <p>Clockwise angle through which the output
Igor Murashkin8aa2a112013-12-09 12:06:17 -080011712image needs to be rotated to be upright on the device
Igor Murashkin0b080452013-12-27 15:30:25 -080011713screen in its native orientation.<wbr/> Also defines the
11714direction of rolling shutter readout,<wbr/> which is from top
11715to bottom in the sensor's coordinate system</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011716 </td>
11717
11718 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011719 degrees clockwise rotation,<wbr/> only multiples of
11720 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011721 </td>
11722
11723 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011724 <p>0,<wbr/>90,<wbr/>180,<wbr/>270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011725 </td>
11726
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011727 <td class="entry_tags">
11728 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011729 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011730 </ul>
11731 </td>
11732
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011733 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011734
11735
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011736 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11737 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011738
11739
11740 <tr class="entry" id="static_android.sensor.referenceIlluminant1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011741 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011742 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011743 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011744 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011745 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011746
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011747 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011748
11749 <ul class="entry_type_enum">
11750 <li>
11751 <span class="entry_type_enum_name">DAYLIGHT</span>
11752 <span class="entry_type_enum_value">1</span>
11753 </li>
11754 <li>
11755 <span class="entry_type_enum_name">FLUORESCENT</span>
11756 <span class="entry_type_enum_value">2</span>
11757 </li>
11758 <li>
11759 <span class="entry_type_enum_name">TUNGSTEN</span>
11760 <span class="entry_type_enum_value">3</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011761 <span class="entry_type_enum_notes"><p>Incandescent light</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011762 </li>
11763 <li>
11764 <span class="entry_type_enum_name">FLASH</span>
11765 <span class="entry_type_enum_value">4</span>
11766 </li>
11767 <li>
11768 <span class="entry_type_enum_name">FINE_WEATHER</span>
11769 <span class="entry_type_enum_value">9</span>
11770 </li>
11771 <li>
11772 <span class="entry_type_enum_name">CLOUDY_WEATHER</span>
11773 <span class="entry_type_enum_value">10</span>
11774 </li>
11775 <li>
11776 <span class="entry_type_enum_name">SHADE</span>
11777 <span class="entry_type_enum_value">11</span>
11778 </li>
11779 <li>
11780 <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span>
11781 <span class="entry_type_enum_value">12</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011782 <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011783 </li>
11784 <li>
11785 <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span>
11786 <span class="entry_type_enum_value">13</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011787 <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011788 </li>
11789 <li>
11790 <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span>
11791 <span class="entry_type_enum_value">14</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011792 <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011793 </li>
11794 <li>
11795 <span class="entry_type_enum_name">WHITE_FLUORESCENT</span>
11796 <span class="entry_type_enum_value">15</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011797 <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011798 </li>
11799 <li>
11800 <span class="entry_type_enum_name">STANDARD_A</span>
11801 <span class="entry_type_enum_value">17</span>
11802 </li>
11803 <li>
11804 <span class="entry_type_enum_name">STANDARD_B</span>
11805 <span class="entry_type_enum_value">18</span>
11806 </li>
11807 <li>
11808 <span class="entry_type_enum_name">STANDARD_C</span>
11809 <span class="entry_type_enum_value">19</span>
11810 </li>
11811 <li>
11812 <span class="entry_type_enum_name">D55</span>
11813 <span class="entry_type_enum_value">20</span>
11814 </li>
11815 <li>
11816 <span class="entry_type_enum_name">D65</span>
11817 <span class="entry_type_enum_value">21</span>
11818 </li>
11819 <li>
11820 <span class="entry_type_enum_name">D75</span>
11821 <span class="entry_type_enum_value">22</span>
11822 </li>
11823 <li>
11824 <span class="entry_type_enum_name">D50</span>
11825 <span class="entry_type_enum_value">23</span>
11826 </li>
11827 <li>
11828 <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span>
11829 <span class="entry_type_enum_value">24</span>
11830 </li>
11831 </ul>
11832
11833 </td> <!-- entry_type -->
11834
11835 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011836 <p>Light source used to define transform
118371</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011838 </td>
11839
11840 <td class="entry_units">
11841 </td>
11842
11843 <td class="entry_range">
11844 </td>
11845
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011846 <td class="entry_tags">
11847 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011848 <li><a href="#tag_DNG">DNG</a></li>
11849 <li><a href="#tag_EXIF">EXIF</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011850 </ul>
11851 </td>
11852
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011853 </tr>
11854 <tr class="entries_header">
11855 <th class="th_details" colspan="5">Details</th>
11856 </tr>
11857 <tr class="entry_cont">
11858 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011859 <p>[EXIF LightSource tag] Must all these be
11860supported? Need CCT for each!</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011861 </td>
11862 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011863
11864
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011865 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11866 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011867
11868
11869 <tr class="entry" id="static_android.sensor.referenceIlluminant2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011870 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011871 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011872 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011873 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011874 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011875
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011876 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011877
11878
11879 </td> <!-- entry_type -->
11880
11881 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011882 <p>Light source used to define transform
118832</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011884 </td>
11885
11886 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011887 Same as illuminant 1
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011888 </td>
11889
11890 <td class="entry_range">
11891 </td>
11892
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011893 <td class="entry_tags">
11894 </td>
11895
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011896 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011897
11898
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011899 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11900 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011901
Igor Murashkina46e02f2014-01-09 17:43:38 -080011902
11903 <tr class="entry" id="static_android.sensor.availableTestPatternModes">
11904 <td class="entry_name" rowspan="1">
11905 android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes
11906 </td>
11907 <td class="entry_type">
11908 <span class="entry_type_name">byte</span>
11909
11910 <span class="entry_type_visibility"> [public]</span>
11911
11912
11913 </td> <!-- entry_type -->
11914
11915 <td class="entry_description">
11916 <p>Optional.<wbr/> Defaults to [OFF].<wbr/> Lists the supported test
11917pattern modes for android.<wbr/>test.<wbr/>pattern<wbr/>Mode.<wbr/></p>
11918 </td>
11919
11920 <td class="entry_units">
11921 </td>
11922
11923 <td class="entry_range">
11924 <p>Must include OFF.<wbr/> All custom modes must be &gt;= CUSTOM1</p>
11925 </td>
11926
11927 <td class="entry_tags">
11928 </td>
11929
11930 </tr>
11931
11932
11933 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11934 <!-- end of entry -->
11935
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011936
11937
11938 <!-- end of kind -->
11939 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011940 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011941
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011942 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011943 <tr>
11944 <th class="th_name">Property Name</th>
11945 <th class="th_type">Type</th>
11946 <th class="th_description">Description</th>
11947 <th class="th_units">Units</th>
11948 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011949 <th class="th_tags">Tags</th>
11950 </tr>
11951 </thead>
11952
11953 <tbody>
11954
11955
11956
11957
11958
11959
11960
11961
11962
11963
11964 <tr class="entry" id="dynamic_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011965 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011966 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
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">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011970
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011971 <span class="entry_type_visibility"> [public]</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>Duration each pixel is exposed to
11978light.<wbr/></p>
11979<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
11980duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011981 </td>
11982
11983 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011984 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011985 </td>
11986
11987 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011988 <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 -080011989 </td>
11990
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011991 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011992 <ul class="entry_tags">
11993 <li><a href="#tag_V1">V1</a></li>
11994 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011995 </td>
11996
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011997 </tr>
11998 <tr class="entries_header">
11999 <th class="th_details" colspan="5">Details</th>
12000 </tr>
12001 <tr class="entry_cont">
12002 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012003 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012004 </td>
12005 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012006
12007
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012008 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12009 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012010
12011
12012 <tr class="entry" id="dynamic_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012013 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012014 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012015 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012016 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012017 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012018
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012019 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012020
12021
12022 </td> <!-- entry_type -->
12023
12024 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012025 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012026start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012027 </td>
12028
12029 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012030 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012031 </td>
12032
12033 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012034 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
12035android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
12036is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012037 </td>
12038
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012039 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012040 <ul class="entry_tags">
12041 <li><a href="#tag_V1">V1</a></li>
12042 <li><a href="#tag_BC">BC</a></li>
12043 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012044 </td>
12045
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012046 </tr>
12047 <tr class="entries_header">
12048 <th class="th_details" colspan="5">Details</th>
12049 </tr>
12050 <tr class="entry_cont">
12051 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012052 <p>The maximum frame rate that can be supported by a camera subsystem is
12053a function of many factors:</p>
12054<ul>
12055<li>Requested resolutions of output image streams</li>
12056<li>Availability of binning /<wbr/> skipping modes on the imager</li>
12057<li>The bandwidth of the imager interface</li>
12058<li>The bandwidth of the various ISP processing blocks</li>
12059</ul>
12060<p>Since these factors can vary greatly between different ISPs and
12061sensors,<wbr/> the camera abstraction tries to represent the bandwidth
12062restrictions with as simple a model as possible.<wbr/></p>
12063<p>The model presented has the following characteristics:</p>
12064<ul>
12065<li>The image sensor is always configured to output the smallest
12066resolution possible given the application's requested output stream
12067sizes.<wbr/> The smallest resolution is defined as being at least as large
12068as the largest requested output stream size; the camera pipeline must
12069never digitally upsample sensor data when the crop region covers the
12070whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
12071resolutions are configured,<wbr/> the sensor can provide a higher frame
12072rate.<wbr/></li>
12073<li>Since any request may use any or all the currently configured
12074output streams,<wbr/> the sensor and ISP must be configured to support
12075scaling a single capture to all the streams at the same time.<wbr/> This
12076means the camera pipeline must be ready to produce the largest
12077requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
12078frame rate of a given configured stream set is governed only by the
12079largest requested stream resolution.<wbr/></li>
12080<li>Using more than one output stream in a request does not affect the
12081frame duration.<wbr/></li>
12082<li>JPEG streams act like processed YUV streams in requests for which
12083they are not included; in requests in which they are directly
12084referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
12085JPEG stream requires the underlying YUV data to always be ready for
12086use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
12087frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
12088<li>The JPEG processor can run concurrently to the rest of the camera
12089pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
12090</ul>
12091<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
12092is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
12093These are used to determine the maximum frame rate /<wbr/> minimum frame
12094duration that is possible for a given stream configuration.<wbr/></p>
12095<p>Specifically,<wbr/> the application can use the following rules to
12096determine the minimum frame duration it can request from the HAL
12097device:</p>
12098<ol>
12099<li>Given the application's currently configured set of output
12100streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
12101<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
12102<code>SP</code>.<wbr/></li>
12103<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
12104count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
12105<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
12106<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
12107no exact match for <code>RP == RJ</code> (in particular there isn't an available
12108processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
12109to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
12110there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
12111the processed resolution closest to <code>RJ</code>.<wbr/></li>
12112<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
12113no exact match for <code>RR == RP</code> (in particular there isn't an available
12114raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
12115or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
12116there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
12117the raw resolution closest to <code>RP</code>.<wbr/></li>
12118<li>Look up the matching minimum frame durations in the property lists
12119<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
12120<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
12121<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
12122minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
12123<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
12124supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
12125<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
12126supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
12127<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
12128the application,<wbr/> then the HAL will have to delay JPEG-using requests
12129whenever the JPEG encoder is still busy processing an older capture.<wbr/>
12130This will happen whenever a JPEG-using request starts capture less
12131than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
12132supported frame duration will vary between the values calculated in
12133#6 and #7.<wbr/></li>
12134</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012135 </td>
12136 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012137
12138
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012139 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12140 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012141
12142
12143 <tr class="entry" id="dynamic_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012144 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012145 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012146 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012147 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012148 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012149
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012150 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012151
12152
12153 </td> <!-- entry_type -->
12154
12155 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012156 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012157implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080012158below 'maximum analog sensitivity'.<wbr/></p>
12159<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
12160gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012161 </td>
12162
12163 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012164 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012165 </td>
12166
12167 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012168 <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 -080012169 </td>
12170
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012171 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012172 <ul class="entry_tags">
12173 <li><a href="#tag_V1">V1</a></li>
12174 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012175 </td>
12176
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012177 </tr>
12178 <tr class="entries_header">
12179 <th class="th_details" colspan="5">Details</th>
12180 </tr>
12181 <tr class="entry_cont">
12182 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012183 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012184 </td>
12185 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012186
12187
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012188 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12189 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012190
12191
12192 <tr class="entry" id="dynamic_android.sensor.timestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012193 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012194 android.<wbr/>sensor.<wbr/>timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012195 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012196 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012197 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012198
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012199 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012200
12201
12202 </td> <!-- entry_type -->
12203
12204 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012205 <p>Time at start of exposure of first
12206row</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012207 </td>
12208
12209 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012210 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012211 </td>
12212
12213 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012214 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012215 </td>
12216
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012217 <td class="entry_tags">
12218 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012219 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012220 </ul>
12221 </td>
12222
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012223 </tr>
12224 <tr class="entries_header">
12225 <th class="th_details" colspan="5">Details</th>
12226 </tr>
12227 <tr class="entry_cont">
12228 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012229 <p>Monotonic,<wbr/> should be synced to other timestamps in
12230system</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012231 </td>
12232 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012233
12234
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012235 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12236 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012237
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012238
12239 <tr class="entry" id="dynamic_android.sensor.temperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012240 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012241 android.<wbr/>sensor.<wbr/>temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012242 </td>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012243 <td class="entry_type">
12244 <span class="entry_type_name">float</span>
12245
12246 <span class="entry_type_visibility"> [public]</span>
12247
12248
12249 </td> <!-- entry_type -->
12250
12251 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012252 <p>The temperature of the sensor,<wbr/> sampled at the time
12253exposure began for this frame.<wbr/></p>
12254<p>The thermal diode being queried should be inside the sensor PCB,<wbr/> or
12255somewhere close to it.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012256 </td>
12257
12258 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012259 celsius
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012260 </td>
12261
12262 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012263 <p>Optional.<wbr/> This value is missing if no temperature is available.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012264 </td>
12265
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012266 <td class="entry_tags">
Alex Rayef40ad62013-10-01 17:52:33 -070012267 <ul class="entry_tags">
12268 <li><a href="#tag_FULL">FULL</a></li>
12269 </ul>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012270 </td>
12271
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012272 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012273
12274
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012275 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12276 <!-- end of entry -->
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012277
Igor Murashkina46e02f2014-01-09 17:43:38 -080012278
12279 <tr class="entry" id="dynamic_android.sensor.testPatternMode">
12280 <td class="entry_name" rowspan="5">
12281 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
12282 </td>
12283 <td class="entry_type">
12284 <span class="entry_type_name entry_type_name_enum">int32</span>
12285
12286 <span class="entry_type_visibility"> [public]</span>
12287
12288 <ul class="entry_type_enum">
12289 <li>
12290 <span class="entry_type_enum_name">OFF</span>
12291 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
12292device returns captures from the image sensor.<wbr/></p></span>
12293 </li>
12294 <li>
12295 <span class="entry_type_enum_name">SOLID_COLOR</span>
12296 <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
12297respective color channel provided in
12298<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
12299<p>For example:</p>
12300<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12301</code></pre>
12302<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
12303<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12304</code></pre>
12305<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
12306are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
12307 </li>
12308 <li>
12309 <span class="entry_type_enum_name">COLOR_BARS</span>
12310 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
12311<p>The vertical bars (left-to-right) are as follows:</p>
12312<ul>
12313<li>100% white</li>
12314<li>yellow</li>
12315<li>cyan</li>
12316<li>green</li>
12317<li>magenta</li>
12318<li>red</li>
12319<li>blue</li>
12320<li>black</li>
12321</ul>
12322<p>In general the image would look like the following:</p>
12323<pre><code>W Y C G M R B K
12324W Y C G M R B K
12325W Y C G M R B K
12326W Y C G M R B K
12327W Y C G M R B K
12328.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12329.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12330.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12331
12332(B = Blue,<wbr/> K = Black)
12333</code></pre>
12334<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
12335When this is not possible,<wbr/> the bar size should be rounded
12336down to the nearest integer and the pattern can repeat
12337on the right side.<wbr/></p>
12338<p>Each bar's height must always take up the full sensor
12339pixel array height.<wbr/></p>
12340<p>Each pixel in this test pattern must be set to either
123410% intensity or 100% intensity.<wbr/></p></span>
12342 </li>
12343 <li>
12344 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
12345 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
12346each bar should start at its specified color at the top,<wbr/>
12347and fade to gray at the bottom.<wbr/></p>
12348<p>Furthermore each bar is further subdivided into a left and
12349right half.<wbr/> The left half should have a smooth gradient,<wbr/>
12350and the right half should have a quantized gradient.<wbr/></p>
12351<p>In particular,<wbr/> the right half's should consist of blocks of the
12352same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
12353<p>The least significant bits in the quantized gradient should
12354be copied from the most significant bits of the smooth gradient.<wbr/></p>
12355<p>The height of each bar should always be a multiple of 128.<wbr/>
12356When this is not the case,<wbr/> the pattern should repeat at the bottom
12357of the image.<wbr/></p></span>
12358 </li>
12359 <li>
12360 <span class="entry_type_enum_name">PN9</span>
12361 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
12362generated from a PN9 512-bit sequence (typically implemented
12363in hardware with a linear feedback shift register).<wbr/></p>
12364<p>The generator should be reset at the beginning of each frame,<wbr/>
12365and thus each subsequent raw frame with this test pattern should
12366be exactly the same as the last.<wbr/></p></span>
12367 </li>
12368 <li>
12369 <span class="entry_type_enum_name">CUSTOM1</span>
12370 <span class="entry_type_enum_value">256</span>
12371 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
12372available only on this camera device are at least this numeric
12373value.<wbr/></p>
12374<p>All of the custom test patterns will be static
12375(that is the raw image must not vary from frame to frame).<wbr/></p></span>
12376 </li>
12377 </ul>
12378
12379 </td> <!-- entry_type -->
12380
12381 <td class="entry_description">
12382 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
12383doing a real exposure from the camera.<wbr/></p>
12384 </td>
12385
12386 <td class="entry_units">
12387 </td>
12388
12389 <td class="entry_range">
12390 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
12391<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
12392 </td>
12393
12394 <td class="entry_tags">
12395 </td>
12396
12397 </tr>
12398 <tr class="entries_header">
12399 <th class="th_details" colspan="5">Details</th>
12400 </tr>
12401 <tr class="entry_cont">
12402 <td class="entry_details" colspan="5">
12403 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
12404by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
12405work as normal.<wbr/></p>
12406<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
12407occur (and that the test pattern remain unmodified,<wbr/> since the flash
12408would not actually affect it).<wbr/></p>
12409 </td>
12410 </tr>
12411
12412 <tr class="entries_header">
12413 <th class="th_details" colspan="5">HAL Implementation Details</th>
12414 </tr>
12415 <tr class="entry_cont">
12416 <td class="entry_details" colspan="5">
12417 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
12418<p>The HAL may choose to substitute test patterns from the sensor
12419with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
12420indistinguishable to the ISP whether the data came from the
12421sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
12422 </td>
12423 </tr>
12424
12425 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12426 <!-- end of entry -->
12427
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012428
12429
12430 <!-- end of kind -->
12431 </tbody>
12432
12433 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012434 <tr><td colspan="6" id="section_shading" class="section">shading</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012435
12436
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012437 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012438
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012439 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012440 <tr>
12441 <th class="th_name">Property Name</th>
12442 <th class="th_type">Type</th>
12443 <th class="th_description">Description</th>
12444 <th class="th_units">Units</th>
12445 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012446 <th class="th_tags">Tags</th>
12447 </tr>
12448 </thead>
12449
12450 <tbody>
12451
12452
12453
12454
12455
12456
12457
12458
12459
12460
12461 <tr class="entry" id="controls_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012462 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012463 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012464 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012465 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012466 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012467
Zhijun He2f86a212014-01-15 10:34:02 -080012468 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012469
12470 <ul class="entry_type_enum">
12471 <li>
12472 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012473 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012474 </li>
12475 <li>
12476 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012477 <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 -080012478 </li>
12479 <li>
12480 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012481 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012482 </li>
12483 </ul>
12484
12485 </td> <!-- entry_type -->
12486
12487 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012488 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012489to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012490 </td>
12491
12492 <td class="entry_units">
12493 </td>
12494
12495 <td class="entry_range">
12496 </td>
12497
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012498 <td class="entry_tags">
12499 </td>
12500
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012501 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012502 <tr class="entries_header">
12503 <th class="th_details" colspan="5">Details</th>
12504 </tr>
12505 <tr class="entry_cont">
12506 <td class="entry_details" colspan="5">
12507 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12508camera device,<wbr/> and an identity lens shading map data will be provided
12509if <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
12510shading 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/>
12511the 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
12512shown below:</p>
12513<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/>
12514 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/>
12515 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/>
12516 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/>
12517 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/>
12518 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 ]
12519</code></pre>
12520<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12521camera device.<wbr/> Applications can request lens shading map data by setting
12522<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
12523lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12524by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12525 </td>
12526 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012527
12528
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012529 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12530 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012531
12532
12533 <tr class="entry" id="controls_android.shading.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012534 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012535 android.<wbr/>shading.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012536 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012537 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012538 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012539
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012540 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012541
12542
12543 </td> <!-- entry_type -->
12544
12545 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012546 <p>Control the amount of shading correction
12547applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012548 </td>
12549
12550 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012551 unitless: 1-10; 10 is full shading
12552 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012553 </td>
12554
12555 <td class="entry_range">
12556 </td>
12557
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012558 <td class="entry_tags">
12559 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012560 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012561 </ul>
12562 </td>
12563
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012564 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012565
12566
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012567 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12568 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012569
12570
12571
12572 <!-- end of kind -->
12573 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012574 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012575
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012576 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012577 <tr>
12578 <th class="th_name">Property Name</th>
12579 <th class="th_type">Type</th>
12580 <th class="th_description">Description</th>
12581 <th class="th_units">Units</th>
12582 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012583 <th class="th_tags">Tags</th>
12584 </tr>
12585 </thead>
12586
12587 <tbody>
12588
12589
12590
12591
12592
12593
12594
12595
12596
12597
12598 <tr class="entry" id="dynamic_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012599 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012600 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012601 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012602 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012603 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012604
Zhijun He2f86a212014-01-15 10:34:02 -080012605 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012606
12607 <ul class="entry_type_enum">
12608 <li>
12609 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012610 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012611 </li>
12612 <li>
12613 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012614 <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 -080012615 </li>
12616 <li>
12617 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012618 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012619 </li>
12620 </ul>
12621
12622 </td> <!-- entry_type -->
12623
12624 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012625 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012626to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012627 </td>
12628
12629 <td class="entry_units">
12630 </td>
12631
12632 <td class="entry_range">
12633 </td>
12634
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012635 <td class="entry_tags">
12636 </td>
12637
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012638 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012639 <tr class="entries_header">
12640 <th class="th_details" colspan="5">Details</th>
12641 </tr>
12642 <tr class="entry_cont">
12643 <td class="entry_details" colspan="5">
12644 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12645camera device,<wbr/> and an identity lens shading map data will be provided
12646if <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
12647shading 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/>
12648the 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
12649shown below:</p>
12650<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/>
12651 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/>
12652 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/>
12653 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/>
12654 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/>
12655 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 ]
12656</code></pre>
12657<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12658camera device.<wbr/> Applications can request lens shading map data by setting
12659<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
12660lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12661by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12662 </td>
12663 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012664
12665
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012666 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12667 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012668
12669
12670
12671 <!-- end of kind -->
12672 </tbody>
12673
12674 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012675 <tr><td colspan="6" id="section_statistics" class="section">statistics</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012676
12677
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012678 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012679
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012680 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012681 <tr>
12682 <th class="th_name">Property Name</th>
12683 <th class="th_type">Type</th>
12684 <th class="th_description">Description</th>
12685 <th class="th_units">Units</th>
12686 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012687 <th class="th_tags">Tags</th>
12688 </tr>
12689 </thead>
12690
12691 <tbody>
12692
12693
12694
12695
12696
12697
12698
12699
12700
12701
12702 <tr class="entry" id="controls_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012703 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012704 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012705 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012706 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012707 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012708
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012709 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012710
12711 <ul class="entry_type_enum">
12712 <li>
12713 <span class="entry_type_enum_name">OFF</span>
12714 </li>
12715 <li>
12716 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012717 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
12718only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012719 </li>
12720 <li>
12721 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012722 <span class="entry_type_enum_notes"><p>Optional Return all face
12723metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012724 </li>
12725 </ul>
12726
12727 </td> <!-- entry_type -->
12728
12729 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012730 <p>State of the face detector
12731unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012732 </td>
12733
12734 <td class="entry_units">
12735 </td>
12736
12737 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012738 <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 -080012739 </td>
12740
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012741 <td class="entry_tags">
12742 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012743 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012744 </ul>
12745 </td>
12746
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012747 </tr>
12748 <tr class="entries_header">
12749 <th class="th_details" colspan="5">Details</th>
12750 </tr>
12751 <tr class="entry_cont">
12752 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012753 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012754should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080012755fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012756<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 -080012757 </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 <tr class="entry" id="controls_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012766 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012767 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012768 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012769 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012770 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012771
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012772 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012773
12774 <ul class="entry_type_enum">
12775 <li>
12776 <span class="entry_type_enum_name">OFF</span>
12777 </li>
12778 <li>
12779 <span class="entry_type_enum_name">ON</span>
12780 </li>
12781 </ul>
12782
12783 </td> <!-- entry_type -->
12784
12785 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012786 <p>Operating mode for histogram
12787generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012788 </td>
12789
12790 <td class="entry_units">
12791 </td>
12792
12793 <td class="entry_range">
12794 </td>
12795
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012796 <td class="entry_tags">
12797 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012798 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012799 </ul>
12800 </td>
12801
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012802 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012803
12804
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012805 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12806 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012807
12808
12809 <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012810 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012811 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012812 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012813 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012814 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012815
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012816 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012817
12818 <ul class="entry_type_enum">
12819 <li>
12820 <span class="entry_type_enum_name">OFF</span>
12821 </li>
12822 <li>
12823 <span class="entry_type_enum_name">ON</span>
12824 </li>
12825 </ul>
12826
12827 </td> <!-- entry_type -->
12828
12829 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012830 <p>Operating mode for sharpness map
12831generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012832 </td>
12833
12834 <td class="entry_units">
12835 </td>
12836
12837 <td class="entry_range">
12838 </td>
12839
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012840 <td class="entry_tags">
12841 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012842 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012843 </ul>
12844 </td>
12845
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012846 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012847
12848
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012849 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12850 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012851
Zhijun He69fc0ea2013-07-17 09:42:58 -070012852
12853 <tr class="entry" id="controls_android.statistics.lensShadingMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012854 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012855 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012856 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012857 <td class="entry_type">
12858 <span class="entry_type_name entry_type_name_enum">byte</span>
12859
12860 <span class="entry_type_visibility"> [public]</span>
12861
12862 <ul class="entry_type_enum">
12863 <li>
12864 <span class="entry_type_enum_name">OFF</span>
12865 </li>
12866 <li>
12867 <span class="entry_type_enum_name">ON</span>
12868 </li>
12869 </ul>
12870
12871 </td> <!-- entry_type -->
12872
12873 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012874 <p>Whether the HAL needs to output the lens
12875shading map in output result metadata</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012876 </td>
12877
12878 <td class="entry_units">
12879 </td>
12880
12881 <td class="entry_range">
12882 </td>
12883
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012884 <td class="entry_tags">
12885 </td>
12886
12887 </tr>
12888 <tr class="entries_header">
12889 <th class="th_details" colspan="5">Details</th>
12890 </tr>
12891 <tr class="entry_cont">
12892 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012893 <p>When set to ON,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012894<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 -080012895the output result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012896 </td>
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 -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070012902
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012903
12904
12905 <!-- end of kind -->
12906 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012907 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012908
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012909 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012910 <tr>
12911 <th class="th_name">Property Name</th>
12912 <th class="th_type">Type</th>
12913 <th class="th_description">Description</th>
12914 <th class="th_units">Units</th>
12915 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012916 <th class="th_tags">Tags</th>
12917 </tr>
12918 </thead>
12919
12920 <tbody>
12921
12922
12923
12924
12925
12926
12927
12928
12929
12930
12931
12932
12933 <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012934 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012935 android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012936 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012937 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012938 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012939 <span class="entry_type_container">x</span>
12940
12941 <span class="entry_type_array">
12942 n
12943 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012944 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080012945 <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 -080012946
12947
12948 </td> <!-- entry_type -->
12949
12950 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012951 <p>Which face detection modes are available,<wbr/>
12952if any</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012953 </td>
12954
12955 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012956 List of enum:
Zhijun He69fc0ea2013-07-17 09:42:58 -070012957 OFF
12958 SIMPLE
Igor Murashkin0b080452013-12-27 15:30:25 -080012959 FULL
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012960 </td>
12961
12962 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012963 </td>
12964
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012965 <td class="entry_tags">
12966 </td>
12967
12968 </tr>
12969 <tr class="entries_header">
12970 <th class="th_details" colspan="5">Details</th>
12971 </tr>
12972 <tr class="entry_cont">
12973 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012974 <p>OFF means face detection is disabled,<wbr/> it must
12975be included in the list.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012976<p>SIMPLE means the device supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012977<a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
12978<a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a> outputs.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012979<p>FULL means the device additionally supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012980<a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a> and
12981<a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a> outputs.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012982 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012983 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012984
12985
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012986 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12987 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012988
12989
12990 <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012991 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012992 android.<wbr/>statistics.<wbr/>info.<wbr/>histogram<wbr/>Bucket<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012993 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012994 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012995 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012996
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012997 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012998
12999
13000 </td> <!-- entry_type -->
13001
13002 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013003 <p>Number of histogram buckets
13004supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013005 </td>
13006
13007 <td class="entry_units">
13008 </td>
13009
13010 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080013011 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013012 </td>
13013
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013014 <td class="entry_tags">
13015 </td>
13016
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013017 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013018
13019
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013020 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13021 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013022
13023
13024 <tr class="entry" id="static_android.statistics.info.maxFaceCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013025 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013026 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013027 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013028 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013029 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013030
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013031 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013032
13033
13034 </td> <!-- entry_type -->
13035
13036 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013037 <p>Maximum number of simultaneously detectable
13038faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013039 </td>
13040
13041 <td class="entry_units">
13042 </td>
13043
13044 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080013045 <p>&gt;= 4 if availableFaceDetectionModes lists
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013046modes besides OFF,<wbr/> otherwise 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013047 </td>
13048
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013049 <td class="entry_tags">
13050 </td>
13051
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013052 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013053
13054
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013055 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13056 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013057
13058
13059 <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013060 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013061 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Histogram<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013062 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013063 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013064 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013065
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013066 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013067
13068
13069 </td> <!-- entry_type -->
13070
13071 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013072 <p>Maximum value possible for a histogram
13073bucket</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013074 </td>
13075
13076 <td class="entry_units">
13077 </td>
13078
13079 <td class="entry_range">
13080 </td>
13081
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013082 <td class="entry_tags">
13083 </td>
13084
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013085 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013086
13087
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013088 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13089 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013090
13091
13092 <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013093 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013094 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Sharpness<wbr/>Map<wbr/>Value
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013095 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013096 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013097 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013098
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013099 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013100
13101
13102 </td> <!-- entry_type -->
13103
13104 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013105 <p>Maximum value possible for a sharpness map
13106region.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013107 </td>
13108
13109 <td class="entry_units">
13110 </td>
13111
13112 <td class="entry_range">
13113 </td>
13114
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013115 <td class="entry_tags">
13116 </td>
13117
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013118 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013119
13120
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013121 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13122 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013123
13124
13125 <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013126 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013127 android.<wbr/>statistics.<wbr/>info.<wbr/>sharpness<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013128 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013129 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013130 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013131 <span class="entry_type_container">x</span>
13132
13133 <span class="entry_type_array">
13134 2
13135 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013136 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013137 <div class="entry_type_notes">width x height</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013138
13139
13140 </td> <!-- entry_type -->
13141
13142 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013143 <p>Dimensions of the sharpness
13144map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013145 </td>
13146
13147 <td class="entry_units">
13148 </td>
13149
13150 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013151 <p>Must be at least 32 x 32</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013152 </td>
13153
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013154 <td class="entry_tags">
13155 </td>
13156
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013157 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013158
13159
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013160 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13161 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013162
13163
13164
13165
13166
13167
13168 <!-- end of kind -->
13169 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013170 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013171
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013172 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013173 <tr>
13174 <th class="th_name">Property Name</th>
13175 <th class="th_type">Type</th>
13176 <th class="th_description">Description</th>
13177 <th class="th_units">Units</th>
13178 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013179 <th class="th_tags">Tags</th>
13180 </tr>
13181 </thead>
13182
13183 <tbody>
13184
13185
13186
13187
13188
13189
13190
13191
13192
13193
13194 <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013195 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013196 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013197 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013198 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013199 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013200
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013201 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013202
13203 <ul class="entry_type_enum">
13204 <li>
13205 <span class="entry_type_enum_name">OFF</span>
13206 </li>
13207 <li>
13208 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013209 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
13210only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013211 </li>
13212 <li>
13213 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013214 <span class="entry_type_enum_notes"><p>Optional Return all face
13215metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013216 </li>
13217 </ul>
13218
13219 </td> <!-- entry_type -->
13220
13221 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013222 <p>State of the face detector
13223unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013224 </td>
13225
13226 <td class="entry_units">
13227 </td>
13228
13229 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013230 <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 -080013231 </td>
13232
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013233 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013234 <ul class="entry_tags">
13235 <li><a href="#tag_BC">BC</a></li>
13236 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013237 </td>
13238
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013239 </tr>
13240 <tr class="entries_header">
13241 <th class="th_details" colspan="5">Details</th>
13242 </tr>
13243 <tr class="entry_cont">
13244 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013245 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013246should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080013247fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013248<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 -080013249 </td>
13250 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013251
13252
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013253 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13254 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013255
13256
13257 <tr class="entry" id="dynamic_android.statistics.faceIds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013258 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013259 android.<wbr/>statistics.<wbr/>face<wbr/>Ids
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013260 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013261 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013262 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013263 <span class="entry_type_container">x</span>
13264
13265 <span class="entry_type_array">
13266 n
13267 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013268 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013269
13270
13271 </td> <!-- entry_type -->
13272
13273 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013274 <p>List of unique IDs for detected
13275faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013276 </td>
13277
13278 <td class="entry_units">
13279 </td>
13280
13281 <td class="entry_range">
13282 </td>
13283
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013284 <td class="entry_tags">
13285 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013286 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013287 </ul>
13288 </td>
13289
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013290 </tr>
13291 <tr class="entries_header">
13292 <th class="th_details" colspan="5">Details</th>
13293 </tr>
13294 <tr class="entry_cont">
13295 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013296 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013297 </td>
13298 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013299
13300
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013301 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13302 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013303
13304
13305 <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013306 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013307 android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013308 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013309 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013310 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013311 <span class="entry_type_container">x</span>
13312
13313 <span class="entry_type_array">
13314 n x 6
13315 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013316 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013317 <div class="entry_type_notes">(leftEyeX,<wbr/> leftEyeY,<wbr/> rightEyeX,<wbr/> rightEyeY,<wbr/> mouthX,<wbr/> mouthY)</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013318
13319
13320 </td> <!-- entry_type -->
13321
13322 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013323 <p>List of landmarks for detected
13324faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013325 </td>
13326
13327 <td class="entry_units">
13328 </td>
13329
13330 <td class="entry_range">
13331 </td>
13332
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013333 <td class="entry_tags">
13334 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013335 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013336 </ul>
13337 </td>
13338
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013339 </tr>
13340 <tr class="entries_header">
13341 <th class="th_details" colspan="5">Details</th>
13342 </tr>
13343 <tr class="entry_cont">
13344 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013345 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013346 </td>
13347 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013348
13349
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013350 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13351 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013352
13353
13354 <tr class="entry" id="dynamic_android.statistics.faceRectangles">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013355 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013356 android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013357 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013358 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013359 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013360 <span class="entry_type_container">x</span>
13361
13362 <span class="entry_type_array">
13363 n x 4
13364 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013365 <span class="entry_type_visibility"> [hidden as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013366 <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 -080013367
13368
13369 </td> <!-- entry_type -->
13370
13371 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013372 <p>List of the bounding rectangles for detected
13373faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013374 </td>
13375
13376 <td class="entry_units">
13377 </td>
13378
13379 <td class="entry_range">
13380 </td>
13381
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013382 <td class="entry_tags">
13383 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013384 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013385 </ul>
13386 </td>
13387
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013388 </tr>
13389 <tr class="entries_header">
13390 <th class="th_details" colspan="5">Details</th>
13391 </tr>
13392 <tr class="entry_cont">
13393 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013394 <p>Only available if faceDetectMode != OFF</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013395 </td>
13396 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013397
13398
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013399 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13400 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013401
13402
13403 <tr class="entry" id="dynamic_android.statistics.faceScores">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013404 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013405 android.<wbr/>statistics.<wbr/>face<wbr/>Scores
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013406 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013407 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013408 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013409 <span class="entry_type_container">x</span>
13410
13411 <span class="entry_type_array">
13412 n
13413 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013414 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013415
13416
13417 </td> <!-- entry_type -->
13418
13419 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013420 <p>List of the face confidence scores for
13421detected faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013422 </td>
13423
13424 <td class="entry_units">
13425 </td>
13426
13427 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013428 <p>1-100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013429 </td>
13430
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013431 <td class="entry_tags">
13432 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013433 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013434 </ul>
13435 </td>
13436
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013437 </tr>
13438 <tr class="entries_header">
13439 <th class="th_details" colspan="5">Details</th>
13440 </tr>
13441 <tr class="entry_cont">
13442 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013443 <p>Only available if faceDetectMode != OFF.<wbr/> The value should be
13444meaningful (for example,<wbr/> setting 100 at all times is illegal).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013445 </td>
13446 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013447
13448
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013449 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13450 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013451
13452
13453 <tr class="entry" id="dynamic_android.statistics.histogram">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013454 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013455 android.<wbr/>statistics.<wbr/>histogram
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013456 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013457 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013458 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013459 <span class="entry_type_container">x</span>
13460
13461 <span class="entry_type_array">
13462 n x 3
13463 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013464 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013465 <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 -080013466
13467
13468 </td> <!-- entry_type -->
13469
13470 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013471 <p>A 3-channel histogram based on the raw
13472sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013473 </td>
13474
13475 <td class="entry_units">
13476 </td>
13477
13478 <td class="entry_range">
13479 </td>
13480
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013481 <td class="entry_tags">
13482 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013483 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013484 </ul>
13485 </td>
13486
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013487 </tr>
13488 <tr class="entries_header">
13489 <th class="th_details" colspan="5">Details</th>
13490 </tr>
13491 <tr class="entry_cont">
13492 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013493 <p>The k'th bucket (0-based) covers the input range
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013494(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 -080013495(k + 1) * w /<wbr/> N ).<wbr/> If only a monochrome sharpness map is
13496supported,<wbr/> all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013497 </td>
13498 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013499
13500
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013501 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13502 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013503
13504
13505 <tr class="entry" id="dynamic_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013506 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013507 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013508 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013509 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013510 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013511
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013512 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013513
13514 <ul class="entry_type_enum">
13515 <li>
13516 <span class="entry_type_enum_name">OFF</span>
13517 </li>
13518 <li>
13519 <span class="entry_type_enum_name">ON</span>
13520 </li>
13521 </ul>
13522
13523 </td> <!-- entry_type -->
13524
13525 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013526 <p>Operating mode for histogram
13527generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013528 </td>
13529
13530 <td class="entry_units">
13531 </td>
13532
13533 <td class="entry_range">
13534 </td>
13535
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013536 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013537 <ul class="entry_tags">
13538 <li><a href="#tag_V1">V1</a></li>
13539 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013540 </td>
13541
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013542 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013543
13544
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013545 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13546 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013547
13548
13549 <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013550 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013551 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013552 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013553 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013554 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013555 <span class="entry_type_container">x</span>
13556
13557 <span class="entry_type_array">
13558 n x m x 3
13559 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013560 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013561 <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 -080013562
13563
13564 </td> <!-- entry_type -->
13565
13566 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013567 <p>A 3-channel sharpness map,<wbr/> based on the raw
13568sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013569 </td>
13570
13571 <td class="entry_units">
13572 </td>
13573
13574 <td class="entry_range">
13575 </td>
13576
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013577 <td class="entry_tags">
13578 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013579 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013580 </ul>
13581 </td>
13582
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013583 </tr>
13584 <tr class="entries_header">
13585 <th class="th_details" colspan="5">Details</th>
13586 </tr>
13587 <tr class="entry_cont">
13588 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013589 <p>If only a monochrome sharpness map is supported,<wbr/>
13590all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013591 </td>
13592 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013593
13594
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013595 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13596 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013597
13598
13599 <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013600 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013601 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013602 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013603 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013604 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013605
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013606 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013607
13608 <ul class="entry_type_enum">
13609 <li>
13610 <span class="entry_type_enum_name">OFF</span>
13611 </li>
13612 <li>
13613 <span class="entry_type_enum_name">ON</span>
13614 </li>
13615 </ul>
13616
13617 </td> <!-- entry_type -->
13618
13619 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013620 <p>Operating mode for sharpness map
13621generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013622 </td>
13623
13624 <td class="entry_units">
13625 </td>
13626
13627 <td class="entry_range">
13628 </td>
13629
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013630 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013631 <ul class="entry_tags">
13632 <li><a href="#tag_V1">V1</a></li>
13633 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013634 </td>
13635
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013636 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013637
13638
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013639 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13640 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013641
Zhijun He69fc0ea2013-07-17 09:42:58 -070013642
13643 <tr class="entry" id="dynamic_android.statistics.lensShadingMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013644 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013645 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013646 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013647 <td class="entry_type">
13648 <span class="entry_type_name">float</span>
13649 <span class="entry_type_container">x</span>
13650
13651 <span class="entry_type_array">
13652 4 x n x m
13653 </span>
13654 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013655 <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 -070013656
13657
13658 </td> <!-- entry_type -->
13659
13660 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013661 <p>The shading map is a low-resolution floating-point map
13662that lists the coefficients used to correct for vignetting,<wbr/> for each
13663Bayer color channel.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013664 </td>
13665
13666 <td class="entry_units">
13667 </td>
13668
13669 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013670 <p>Each gain factor is &gt;= 1</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013671 </td>
13672
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013673 <td class="entry_tags">
13674 </td>
13675
13676 </tr>
13677 <tr class="entries_header">
13678 <th class="th_details" colspan="5">Details</th>
13679 </tr>
13680 <tr class="entry_cont">
13681 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013682 <p>The least shaded section of the image should have a gain factor
13683of 1; all other sections should have gains above 1.<wbr/></p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013684<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 -080013685must take into account the colorCorrection settings.<wbr/></p>
13686<p>The shading map is for the entire active pixel array,<wbr/> and is not
13687affected by the crop region specified in the request.<wbr/> Each shading map
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013688entry is the value of the shading compensation map over a specific
Igor Murashkin0b080452013-12-27 15:30:25 -080013689pixel on the sensor.<wbr/> Specifically,<wbr/> with a (N x M) resolution shading
13690map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
13691(x,<wbr/>y) ϵ (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
13692pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
13693The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
13694<p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
13695channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
13696The shading map is stored in a fully interleaved format,<wbr/> and its size
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013697is 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 -080013698<p>The shading map should have on the order of 30-40 rows and columns,<wbr/>
13699and must be smaller than 64x64.<wbr/></p>
13700<p>As an example,<wbr/> given a very small map defined as:</p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013701<pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]
13702<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> =
Igor Murashkin0b080452013-12-27 15:30:25 -080013703[ 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/>
13704 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/>
13705 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/>
13706 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/>
13707 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/>
13708 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 -080013709</code></pre>
13710<p>The low-resolution scaling map images for each channel are
13711(displayed using nearest-neighbor interpolation):</p>
13712<p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
13713<img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
13714<img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
13715<img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013716<p>As a visualization only,<wbr/> inverting the full-color map to recover an
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013717image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013718<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 -070013719 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013720 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013721
13722
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013723 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13724 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013725
13726
13727 <tr class="entry" id="dynamic_android.statistics.predictedColorGains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013728 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013729 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013730 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013731 <td class="entry_type">
13732 <span class="entry_type_name">float</span>
13733 <span class="entry_type_container">x</span>
13734
13735 <span class="entry_type_array">
13736 4
13737 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013738 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013739 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013740
13741
13742 </td> <!-- entry_type -->
13743
13744 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013745 <p>The best-fit color channel gains calculated
13746by the HAL's statistics units for the current output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013747 </td>
13748
13749 <td class="entry_units">
13750 </td>
13751
13752 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013753 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013754 </td>
13755
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013756 <td class="entry_tags">
13757 </td>
13758
13759 </tr>
13760 <tr class="entries_header">
13761 <th class="th_details" colspan="5">Details</th>
13762 </tr>
13763 <tr class="entry_cont">
13764 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013765 <p>This may be different than the gains used for this frame,<wbr/>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013766since statistics processing on data from a new frame
13767typically completes after the transform has already been
Igor Murashkin0b080452013-12-27 15:30:25 -080013768applied to that frame.<wbr/></p>
13769<p>The 4 channel gains are defined in Bayer domain,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013770see <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 -080013771<p>This value should always be calculated by the AWB block,<wbr/>
13772regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013773 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013774 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013775
13776
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013777 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13778 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013779
13780
13781 <tr class="entry" id="dynamic_android.statistics.predictedColorTransform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013782 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013783 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013784 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013785 <td class="entry_type">
13786 <span class="entry_type_name">rational</span>
13787 <span class="entry_type_container">x</span>
13788
13789 <span class="entry_type_array">
13790 3 x 3
13791 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013792 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013793 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013794
13795
13796 </td> <!-- entry_type -->
13797
13798 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013799 <p>The best-fit color transform matrix estimate
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013800calculated by the HAL's statistics units for the current
Igor Murashkin0b080452013-12-27 15:30:25 -080013801output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013802 </td>
13803
13804 <td class="entry_units">
13805 </td>
13806
13807 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013808 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013809 </td>
13810
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013811 <td class="entry_tags">
13812 </td>
13813
13814 </tr>
13815 <tr class="entries_header">
13816 <th class="th_details" colspan="5">Details</th>
13817 </tr>
13818 <tr class="entry_cont">
13819 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013820 <p>The HAL must provide the estimate from its
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013821statistics unit on the white balance transforms to use
Igor Murashkin0b080452013-12-27 15:30:25 -080013822for the next frame.<wbr/> These are the values the HAL believes
13823are the best fit for the current output frame.<wbr/> This may
13824be different than the transform used for this frame,<wbr/> since
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013825statistics processing on data from a new frame typically
13826completes after the transform has already been applied to
Igor Murashkin0b080452013-12-27 15:30:25 -080013827that frame.<wbr/></p>
13828<p>These estimates must be provided for all frames,<wbr/> even if
13829capture settings and color transforms are set by the application.<wbr/></p>
13830<p>This value should always be calculated by the AWB block,<wbr/>
13831regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013832 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013833 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013834
13835
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013836 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13837 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013838
13839
13840 <tr class="entry" id="dynamic_android.statistics.sceneFlicker">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013841 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013842 android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013843 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013844 <td class="entry_type">
13845 <span class="entry_type_name entry_type_name_enum">byte</span>
13846
13847 <span class="entry_type_visibility"> [public]</span>
13848
13849 <ul class="entry_type_enum">
13850 <li>
13851 <span class="entry_type_enum_name">NONE</span>
13852 </li>
13853 <li>
13854 <span class="entry_type_enum_name">50HZ</span>
13855 </li>
13856 <li>
13857 <span class="entry_type_enum_name">60HZ</span>
13858 </li>
13859 </ul>
13860
13861 </td> <!-- entry_type -->
13862
13863 <td class="entry_description">
Zhijun Heb8512c52014-02-03 11:46:58 -080013864 <p>The camera device estimated scene illumination lighting
13865frequency.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013866 </td>
13867
13868 <td class="entry_units">
13869 </td>
13870
13871 <td class="entry_range">
13872 </td>
13873
Zhijun He69fc0ea2013-07-17 09:42:58 -070013874 <td class="entry_tags">
13875 </td>
13876
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013877 </tr>
13878 <tr class="entries_header">
13879 <th class="th_details" colspan="5">Details</th>
13880 </tr>
13881 <tr class="entry_cont">
13882 <td class="entry_details" colspan="5">
Zhijun Heb8512c52014-02-03 11:46:58 -080013883 <p>Many light sources,<wbr/> such as most fluorescent lights,<wbr/> flicker at a rate
13884that depends on the local utility power standards.<wbr/> This flicker must be
13885accounted for by auto-exposure routines to avoid artifacts in captured images.<wbr/>
13886The camera device uses this entry to tell the application what the scene
13887illuminant frequency is.<wbr/></p>
13888<p>When manual exposure control is enabled
13889(<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/>
13890the <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> doesn't do the antibanding,<wbr/> and the
13891application can ensure it selects exposure times that do not cause banding
13892issues by looking into this metadata field.<wbr/> See android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
13893for more details.<wbr/></p>
13894<p>Report NONE if there doesn't appear to be flickering illumination.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013895 </td>
13896 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013897
13898
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013899 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13900 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013901
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013902
13903
13904 <!-- end of kind -->
13905 </tbody>
13906
13907 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013908 <tr><td colspan="6" id="section_tonemap" class="section">tonemap</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013909
13910
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013911 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013912
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013913 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013914 <tr>
13915 <th class="th_name">Property Name</th>
13916 <th class="th_type">Type</th>
13917 <th class="th_description">Description</th>
13918 <th class="th_units">Units</th>
13919 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013920 <th class="th_tags">Tags</th>
13921 </tr>
13922 </thead>
13923
13924 <tbody>
13925
13926
13927
13928
13929
13930
13931
13932
13933
13934
13935 <tr class="entry" id="controls_android.tonemap.curveBlue">
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/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013938 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013939 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080013940 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070013941 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013942
Zhijun He704d1282013-08-19 15:26:33 -070013943 <span class="entry_type_array">
13944 n x 2
13945 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013946 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013947 <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 -080013948
13949
13950 </td> <!-- entry_type -->
13951
13952 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013953 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
13954channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
13955CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013956 </td>
13957
13958 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080013959 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013960 </td>
13961
13962 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013963 <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 -080013964 </td>
13965
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013966 <td class="entry_tags">
13967 </td>
13968
13969 </tr>
13970 <tr class="entries_header">
13971 <th class="th_details" colspan="5">Details</th>
13972 </tr>
13973 <tr class="entry_cont">
13974 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013975 <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 -080013976 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013977 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013978
13979
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013980 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13981 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013982
13983
13984 <tr class="entry" id="controls_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013985 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013986 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013987 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013988 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080013989 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070013990 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013991
Zhijun He704d1282013-08-19 15:26:33 -070013992 <span class="entry_type_array">
13993 n x 2
13994 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013995 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013996 <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 -080013997
13998
13999 </td> <!-- entry_type -->
14000
14001 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014002 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14003channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14004CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014005 </td>
14006
14007 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014008 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014009 </td>
14010
14011 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014012 <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 -080014013 </td>
14014
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014015 <td class="entry_tags">
14016 </td>
14017
14018 </tr>
14019 <tr class="entries_header">
14020 <th class="th_details" colspan="5">Details</th>
14021 </tr>
14022 <tr class="entry_cont">
14023 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014024 <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 -080014025 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014026 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014027
14028
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014029 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14030 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014031
14032
14033 <tr class="entry" id="controls_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014034 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014035 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014036 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014037 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014038 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014039 <span class="entry_type_container">x</span>
14040
14041 <span class="entry_type_array">
14042 n x 2
14043 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014044 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014045 <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 -080014046
14047
14048 </td> <!-- entry_type -->
14049
14050 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014051 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14052channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14053CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014054 </td>
14055
14056 <td class="entry_units">
14057 </td>
14058
14059 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014060 <p>0-1 on both input and output coordinates,<wbr/> normalized
14061as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014062 </td>
14063
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014064 <td class="entry_tags">
14065 <ul class="entry_tags">
14066 <li><a href="#tag_DNG">DNG</a></li>
14067 </ul>
14068 </td>
14069
14070 </tr>
14071 <tr class="entries_header">
14072 <th class="th_details" colspan="5">Details</th>
14073 </tr>
14074 <tr class="entry_cont">
14075 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014076 <p>Each channel's curve is defined by an array of control points:</p>
14077<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14078 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
140792 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14080<p>These are sorted in order of increasing <code>Pin</code>; it is always
14081guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14082define a complete mapping.<wbr/> For input values between control points,<wbr/>
14083the camera device must linearly interpolate between the control
14084points.<wbr/></p>
14085<p>Each curve can have an independent number of points,<wbr/> and the number
14086of points can be less than max (that is,<wbr/> the request doesn't have to
14087always provide a curve with number of points equivalent to
14088<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14089<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14090only specify the red channel and the precision is limited to 4
14091digits,<wbr/> for conciseness.<wbr/></p>
14092<p>Linear mapping:</p>
14093<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 ]
14094</code></pre>
14095<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14096<p>Invert mapping:</p>
14097<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 ]
14098</code></pre>
14099<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14100<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14101<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14102 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/>
14103 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/>
14104 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/>
14105 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 ]
14106</code></pre>
14107<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14108<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14109<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14110 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/>
14111 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/>
14112 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/>
14113 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 ]
14114</code></pre>
14115<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014116 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014117 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014118
Igor Murashkin94e06c42014-01-13 16:51:17 -080014119 <tr class="entries_header">
14120 <th class="th_details" colspan="5">HAL Implementation Details</th>
14121 </tr>
14122 <tr class="entry_cont">
14123 <td class="entry_details" colspan="5">
14124 <p>For good quality of mapping,<wbr/> at least 128 control points are
14125preferred.<wbr/></p>
14126<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14127control points used as are available.<wbr/></p>
14128 </td>
14129 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014130
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014131 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14132 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014133
14134
14135 <tr class="entry" id="controls_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014136 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014137 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014138 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014139 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014140 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014141
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014142 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014143
14144 <ul class="entry_type_enum">
14145 <li>
14146 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014147 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014148android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14149<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14150for applying the tonemapping curve specified by
14151<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
14152<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14153<p>Must not slow down frame rate relative to raw
14154sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014155 </li>
14156 <li>
14157 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014158 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14159<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014160 </li>
14161 <li>
14162 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014163 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14164<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014165 </li>
14166 </ul>
14167
14168 </td> <!-- entry_type -->
14169
14170 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014171 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014172 </td>
14173
14174 <td class="entry_units">
14175 </td>
14176
14177 <td class="entry_range">
14178 </td>
14179
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014180 <td class="entry_tags">
14181 </td>
14182
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014183 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014184 <tr class="entries_header">
14185 <th class="th_details" colspan="5">Details</th>
14186 </tr>
14187 <tr class="entry_cont">
14188 <td class="entry_details" colspan="5">
14189 <p>When switching to an application-defined contrast curve by setting
14190<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14191per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14192mapping from input high-bit-depth pixel value to the output
14193low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14194and output may change depending on the camera pipeline,<wbr/> the values
14195are specified by normalized floating-point numbers.<wbr/></p>
14196<p>More-complex color mapping operations such as 3D color look-up
14197tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14198transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14199CONTRAST_<wbr/>CURVE.<wbr/></p>
14200<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14201emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14202<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/>
14203These values are always available,<wbr/> and as close as possible to the
14204actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14205<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14206provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14207roughly the same.<wbr/></p>
14208 </td>
14209 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014210
14211
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014212 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14213 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014214
14215
14216
14217 <!-- end of kind -->
14218 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014219 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014220
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014221 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014222 <tr>
14223 <th class="th_name">Property Name</th>
14224 <th class="th_type">Type</th>
14225 <th class="th_description">Description</th>
14226 <th class="th_units">Units</th>
14227 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014228 <th class="th_tags">Tags</th>
14229 </tr>
14230 </thead>
14231
14232 <tbody>
14233
14234
14235
14236
14237
14238
14239
14240
14241
14242
14243 <tr class="entry" id="static_android.tonemap.maxCurvePoints">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014244 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014245 android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014246 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014247 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014248 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014249
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014250 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014251
14252
14253 </td> <!-- entry_type -->
14254
14255 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014256 <p>Maximum number of supported points in the
Igor Murashkin94e06c42014-01-13 16:51:17 -080014257tonemap curve that can be used for <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/> or
14258<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 -080014259 </td>
14260
14261 <td class="entry_units">
14262 </td>
14263
14264 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014265 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014266 </td>
14267
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014268 <td class="entry_tags">
14269 </td>
14270
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014271 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014272 <tr class="entries_header">
14273 <th class="th_details" colspan="5">Details</th>
14274 </tr>
14275 <tr class="entry_cont">
14276 <td class="entry_details" colspan="5">
14277 <p>If the actual number of points provided by the application (in
14278android.<wbr/>tonemap.<wbr/>curve*) is less than max,<wbr/> the camera device will
14279resample the curve to its internal representation,<wbr/> using linear
14280interpolation.<wbr/></p>
14281<p>The output curves in the result metadata may have a different number
14282of points than the input curves,<wbr/> and will represent the actual
14283hardware curves used as closely as possible when linearly interpolated.<wbr/></p>
14284 </td>
14285 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014286
Igor Murashkin94e06c42014-01-13 16:51:17 -080014287 <tr class="entries_header">
14288 <th class="th_details" colspan="5">HAL Implementation Details</th>
14289 </tr>
14290 <tr class="entry_cont">
14291 <td class="entry_details" colspan="5">
14292 <p>This value must be at least 64.<wbr/> This should be at least 128.<wbr/></p>
14293 </td>
14294 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014295
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014296 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14297 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014298
14299
14300
14301 <!-- end of kind -->
14302 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014303 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014304
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014305 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014306 <tr>
14307 <th class="th_name">Property Name</th>
14308 <th class="th_type">Type</th>
14309 <th class="th_description">Description</th>
14310 <th class="th_units">Units</th>
14311 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014312 <th class="th_tags">Tags</th>
14313 </tr>
14314 </thead>
14315
14316 <tbody>
14317
14318
14319
14320
14321
14322
14323
14324
14325
14326
14327 <tr class="entry" id="dynamic_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014328 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014329 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014330 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014331 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014332 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014333 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014334
Zhijun He704d1282013-08-19 15:26:33 -070014335 <span class="entry_type_array">
14336 n x 2
14337 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014338 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014339 <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 -080014340
14341
14342 </td> <!-- entry_type -->
14343
14344 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014345 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
14346channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14347CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014348 </td>
14349
14350 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014351 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014352 </td>
14353
14354 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014355 <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 -080014356 </td>
14357
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014358 <td class="entry_tags">
14359 </td>
14360
14361 </tr>
14362 <tr class="entries_header">
14363 <th class="th_details" colspan="5">Details</th>
14364 </tr>
14365 <tr class="entry_cont">
14366 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014367 <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 -080014368 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014369 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014370
14371
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014372 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14373 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014374
14375
14376 <tr class="entry" id="dynamic_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014377 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014378 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014379 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014380 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014381 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014382 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014383
Zhijun He704d1282013-08-19 15:26:33 -070014384 <span class="entry_type_array">
14385 n x 2
14386 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014387 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014388 <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 -080014389
14390
14391 </td> <!-- entry_type -->
14392
14393 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014394 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14395channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14396CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014397 </td>
14398
14399 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014400 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014401 </td>
14402
14403 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014404 <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 -080014405 </td>
14406
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014407 <td class="entry_tags">
14408 </td>
14409
14410 </tr>
14411 <tr class="entries_header">
14412 <th class="th_details" colspan="5">Details</th>
14413 </tr>
14414 <tr class="entry_cont">
14415 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014416 <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 -080014417 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014418 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014419
14420
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014421 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14422 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014423
14424
14425 <tr class="entry" id="dynamic_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014426 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014427 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014428 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014429 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014430 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014431 <span class="entry_type_container">x</span>
14432
14433 <span class="entry_type_array">
14434 n x 2
14435 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014436 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014437 <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 -080014438
14439
14440 </td> <!-- entry_type -->
14441
14442 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014443 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14444channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14445CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014446 </td>
14447
14448 <td class="entry_units">
14449 </td>
14450
14451 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014452 <p>0-1 on both input and output coordinates,<wbr/> normalized
14453as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014454 </td>
14455
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014456 <td class="entry_tags">
14457 <ul class="entry_tags">
14458 <li><a href="#tag_DNG">DNG</a></li>
14459 </ul>
14460 </td>
14461
14462 </tr>
14463 <tr class="entries_header">
14464 <th class="th_details" colspan="5">Details</th>
14465 </tr>
14466 <tr class="entry_cont">
14467 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014468 <p>Each channel's curve is defined by an array of control points:</p>
14469<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14470 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
144712 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14472<p>These are sorted in order of increasing <code>Pin</code>; it is always
14473guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14474define a complete mapping.<wbr/> For input values between control points,<wbr/>
14475the camera device must linearly interpolate between the control
14476points.<wbr/></p>
14477<p>Each curve can have an independent number of points,<wbr/> and the number
14478of points can be less than max (that is,<wbr/> the request doesn't have to
14479always provide a curve with number of points equivalent to
14480<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14481<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14482only specify the red channel and the precision is limited to 4
14483digits,<wbr/> for conciseness.<wbr/></p>
14484<p>Linear mapping:</p>
14485<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 ]
14486</code></pre>
14487<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14488<p>Invert mapping:</p>
14489<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 ]
14490</code></pre>
14491<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14492<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14493<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14494 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/>
14495 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/>
14496 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/>
14497 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 ]
14498</code></pre>
14499<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14500<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14501<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14502 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/>
14503 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/>
14504 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/>
14505 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 ]
14506</code></pre>
14507<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014508 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014509 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014510
Igor Murashkin94e06c42014-01-13 16:51:17 -080014511 <tr class="entries_header">
14512 <th class="th_details" colspan="5">HAL Implementation Details</th>
14513 </tr>
14514 <tr class="entry_cont">
14515 <td class="entry_details" colspan="5">
14516 <p>For good quality of mapping,<wbr/> at least 128 control points are
14517preferred.<wbr/></p>
14518<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14519control points used as are available.<wbr/></p>
14520 </td>
14521 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014522
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014523 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14524 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014525
14526
14527 <tr class="entry" id="dynamic_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014528 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014529 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014530 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014531 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014532 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014533
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014534 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014535
14536 <ul class="entry_type_enum">
14537 <li>
14538 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014539 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014540android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14541<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14542for applying the tonemapping curve specified by
14543<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
14544<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14545<p>Must not slow down frame rate relative to raw
14546sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014547 </li>
14548 <li>
14549 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014550 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14551<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014552 </li>
14553 <li>
14554 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014555 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14556<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014557 </li>
14558 </ul>
14559
14560 </td> <!-- entry_type -->
14561
14562 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014563 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014564 </td>
14565
14566 <td class="entry_units">
14567 </td>
14568
14569 <td class="entry_range">
14570 </td>
14571
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014572 <td class="entry_tags">
14573 </td>
14574
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014575 </tr>
Igor Murashkin595f45b2014-01-17 17:27:15 -080014576 <tr class="entries_header">
14577 <th class="th_details" colspan="5">Details</th>
14578 </tr>
14579 <tr class="entry_cont">
14580 <td class="entry_details" colspan="5">
14581 <p>When switching to an application-defined contrast curve by setting
14582<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14583per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14584mapping from input high-bit-depth pixel value to the output
14585low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14586and output may change depending on the camera pipeline,<wbr/> the values
14587are specified by normalized floating-point numbers.<wbr/></p>
14588<p>More-complex color mapping operations such as 3D color look-up
14589tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14590transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14591CONTRAST_<wbr/>CURVE.<wbr/></p>
14592<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14593emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14594<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/>
14595These values are always available,<wbr/> and as close as possible to the
14596actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14597<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14598provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14599roughly the same.<wbr/></p>
14600 </td>
14601 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014602
14603
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014604 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14605 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014606
14607
14608
14609 <!-- end of kind -->
14610 </tbody>
14611
14612 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014613 <tr><td colspan="6" id="section_led" class="section">led</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014614
14615
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014616 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014617
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014618 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014619 <tr>
14620 <th class="th_name">Property Name</th>
14621 <th class="th_type">Type</th>
14622 <th class="th_description">Description</th>
14623 <th class="th_units">Units</th>
14624 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014625 <th class="th_tags">Tags</th>
14626 </tr>
14627 </thead>
14628
14629 <tbody>
14630
14631
14632
14633
14634
14635
14636
14637
14638
14639
14640 <tr class="entry" id="controls_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014641 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014642 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014643 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014644 <td class="entry_type">
14645 <span class="entry_type_name entry_type_name_enum">byte</span>
14646
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014647 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014648
14649 <ul class="entry_type_enum">
14650 <li>
14651 <span class="entry_type_enum_name">OFF</span>
14652 </li>
14653 <li>
14654 <span class="entry_type_enum_name">ON</span>
14655 </li>
14656 </ul>
14657
14658 </td> <!-- entry_type -->
14659
14660 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014661 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014662that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014663Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014664disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014665any untrusted applications.<wbr/></p>
14666<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14667transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14668data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014669<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014670doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014671 </td>
14672
14673 <td class="entry_units">
14674 </td>
14675
14676 <td class="entry_range">
14677 </td>
14678
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014679 <td class="entry_tags">
14680 </td>
14681
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014682 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014683
14684
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014685 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14686 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014687
14688
14689
14690 <!-- end of kind -->
14691 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014692 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014693
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014694 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014695 <tr>
14696 <th class="th_name">Property Name</th>
14697 <th class="th_type">Type</th>
14698 <th class="th_description">Description</th>
14699 <th class="th_units">Units</th>
14700 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014701 <th class="th_tags">Tags</th>
14702 </tr>
14703 </thead>
14704
14705 <tbody>
14706
14707
14708
14709
14710
14711
14712
14713
14714
14715
14716 <tr class="entry" id="dynamic_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014717 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014718 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014719 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014720 <td class="entry_type">
14721 <span class="entry_type_name entry_type_name_enum">byte</span>
14722
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014723 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014724
14725 <ul class="entry_type_enum">
14726 <li>
14727 <span class="entry_type_enum_name">OFF</span>
14728 </li>
14729 <li>
14730 <span class="entry_type_enum_name">ON</span>
14731 </li>
14732 </ul>
14733
14734 </td> <!-- entry_type -->
14735
14736 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014737 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014738that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014739Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014740disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014741any untrusted applications.<wbr/></p>
14742<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14743transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14744data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014745<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014746doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014747 </td>
14748
14749 <td class="entry_units">
14750 </td>
14751
14752 <td class="entry_range">
14753 </td>
14754
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014755 <td class="entry_tags">
14756 </td>
14757
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014758 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014759
14760
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014761 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14762 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014763
14764
14765
14766 <!-- end of kind -->
14767 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014768 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014769
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014770 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014771 <tr>
14772 <th class="th_name">Property Name</th>
14773 <th class="th_type">Type</th>
14774 <th class="th_description">Description</th>
14775 <th class="th_units">Units</th>
14776 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014777 <th class="th_tags">Tags</th>
14778 </tr>
14779 </thead>
14780
14781 <tbody>
14782
14783
14784
14785
14786
14787
14788
14789
14790
14791
14792 <tr class="entry" id="static_android.led.availableLeds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014793 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014794 android.<wbr/>led.<wbr/>available<wbr/>Leds
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014795 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014796 <td class="entry_type">
14797 <span class="entry_type_name entry_type_name_enum">byte</span>
14798 <span class="entry_type_container">x</span>
14799
14800 <span class="entry_type_array">
14801 n
14802 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014803 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014804
14805 <ul class="entry_type_enum">
14806 <li>
14807 <span class="entry_type_enum_name">TRANSMIT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014808 <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 -070014809 </li>
14810 </ul>
14811
14812 </td> <!-- entry_type -->
14813
14814 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014815 <p>A list of camera LEDs that are available on this system.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014816 </td>
14817
14818 <td class="entry_units">
14819 </td>
14820
14821 <td class="entry_range">
14822 </td>
14823
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014824 <td class="entry_tags">
14825 </td>
14826
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014827 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014828
14829
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014830 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14831 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014832
14833
14834
14835 <!-- end of kind -->
14836 </tbody>
14837
14838 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014839 <tr><td colspan="6" id="section_info" class="section">info</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014840
14841
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014842 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014843
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014844 <thead class="entries_header">
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014845 <tr>
14846 <th class="th_name">Property Name</th>
14847 <th class="th_type">Type</th>
14848 <th class="th_description">Description</th>
14849 <th class="th_units">Units</th>
14850 <th class="th_range">Range</th>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014851 <th class="th_tags">Tags</th>
14852 </tr>
14853 </thead>
14854
14855 <tbody>
14856
14857
14858
14859
14860
14861
14862
14863
14864
14865
14866 <tr class="entry" id="static_android.info.supportedHardwareLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014867 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014868 android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014869 </td>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014870 <td class="entry_type">
14871 <span class="entry_type_name entry_type_name_enum">byte</span>
14872
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014873 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014874
14875 <ul class="entry_type_enum">
14876 <li>
14877 <span class="entry_type_enum_name">LIMITED</span>
14878 </li>
14879 <li>
14880 <span class="entry_type_enum_name">FULL</span>
14881 </li>
14882 </ul>
14883
14884 </td> <!-- entry_type -->
14885
14886 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014887 <p>The camera 3 HAL device can implement one of two possible
14888operational modes; limited and full.<wbr/> Full support is
14889expected from new higher-end devices.<wbr/> Limited mode has
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014890hardware requirements roughly in line with those for a
Igor Murashkin0b080452013-12-27 15:30:25 -080014891camera HAL device v1 implementation,<wbr/> and is expected from
14892older or inexpensive devices.<wbr/> Full is a strict superset of
14893limited,<wbr/> and they share the same essential operational flow.<wbr/></p>
14894<p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014895 </td>
14896
14897 <td class="entry_units">
14898 </td>
14899
14900 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014901 <p>Optional.<wbr/> Default value is LIMITED.<wbr/></p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014902 </td>
14903
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014904 <td class="entry_tags">
14905 </td>
14906
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014907 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014908
14909
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014910 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14911 <!-- end of entry -->
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014912
14913
14914
14915 <!-- end of kind -->
14916 </tbody>
14917
14918 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014919 <tr><td colspan="6" id="section_blackLevel" class="section">blackLevel</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014920
14921
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014922 <tr><td colspan="6" class="kind">controls</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014923
14924 <thead class="entries_header">
14925 <tr>
14926 <th class="th_name">Property Name</th>
14927 <th class="th_type">Type</th>
14928 <th class="th_description">Description</th>
14929 <th class="th_units">Units</th>
14930 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014931 <th class="th_tags">Tags</th>
14932 </tr>
14933 </thead>
14934
14935 <tbody>
14936
14937
14938
14939
14940
14941
14942
14943
14944
14945
14946 <tr class="entry" id="controls_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014947 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014948 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014949 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014950 <td class="entry_type">
14951 <span class="entry_type_name entry_type_name_enum">byte</span>
14952
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014953 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014954
14955 <ul class="entry_type_enum">
14956 <li>
14957 <span class="entry_type_enum_name">OFF</span>
14958 </li>
14959 <li>
14960 <span class="entry_type_enum_name">ON</span>
14961 </li>
14962 </ul>
14963
14964 </td> <!-- entry_type -->
14965
14966 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014967 <p>Whether black-level compensation is locked
14968to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014969 </td>
14970
14971 <td class="entry_units">
14972 </td>
14973
14974 <td class="entry_range">
14975 </td>
14976
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014977 <td class="entry_tags">
14978 <ul class="entry_tags">
14979 <li><a href="#tag_HAL2">HAL2</a></li>
14980 </ul>
14981 </td>
14982
14983 </tr>
14984 <tr class="entries_header">
14985 <th class="th_details" colspan="5">Details</th>
14986 </tr>
14987 <tr class="entry_cont">
14988 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014989 <p>When set to ON,<wbr/> the values used for black-level
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014990compensation will not change until the lock is set to
Igor Murashkin0b080452013-12-27 15:30:25 -080014991OFF.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014992<p>Since changes to certain capture parameters (such as
14993exposure time) may require resetting of black level
Igor Murashkin0b080452013-12-27 15:30:25 -080014994compensation,<wbr/> the camera device must report whether setting
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014995the black level lock was successful in the output result
Igor Murashkin0b080452013-12-27 15:30:25 -080014996metadata.<wbr/></p>
14997<p>For example,<wbr/> if a sequence of requests is as follows:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014998<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080014999<li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
15000<li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15001<li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15002<li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15003<li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15004<li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015005</ul>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015006<p>And the exposure change in Request 4 requires the camera
Igor Murashkin0b080452013-12-27 15:30:25 -080015007device to reset the black level offsets,<wbr/> then the output
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015008result metadata is expected to be:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015009<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015010<li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
15011<li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15012<li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15013<li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li>
15014<li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15015<li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015016</ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015017<p>This indicates to the application that on frame 4,<wbr/> black
15018levels were reset due to exposure value changes,<wbr/> and pixel
15019values may not be consistent across captures.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015020<p>The camera device will maintain the lock to the extent
Igor Murashkin0b080452013-12-27 15:30:25 -080015021possible,<wbr/> only overriding the lock to OFF when changes to
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015022other request parameters require a black level recalculation
Igor Murashkin0b080452013-12-27 15:30:25 -080015023or reset.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015024 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015025 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015026
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015027 <tr class="entries_header">
15028 <th class="th_details" colspan="5">HAL Implementation Details</th>
15029 </tr>
15030 <tr class="entry_cont">
15031 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015032 <p>If for some reason black level locking is no longer possible
15033(for example,<wbr/> the analog gain has changed,<wbr/> which forces
15034black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015035override this request (and it must report 'OFF' when this
15036does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080015037possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015038 </td>
15039 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015040
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015041 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15042 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070015043
15044
15045
15046 <!-- end of kind -->
15047 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015048 <tr><td colspan="6" class="kind">dynamic</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015049
15050 <thead class="entries_header">
15051 <tr>
15052 <th class="th_name">Property Name</th>
15053 <th class="th_type">Type</th>
15054 <th class="th_description">Description</th>
15055 <th class="th_units">Units</th>
15056 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015057 <th class="th_tags">Tags</th>
15058 </tr>
15059 </thead>
15060
15061 <tbody>
15062
15063
15064
15065
15066
15067
15068
15069
15070
15071
15072 <tr class="entry" id="dynamic_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015073 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015074 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015075 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015076 <td class="entry_type">
15077 <span class="entry_type_name entry_type_name_enum">byte</span>
15078
Igor Murashkinb8dc8812013-07-17 16:29:34 -070015079 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015080
15081 <ul class="entry_type_enum">
15082 <li>
15083 <span class="entry_type_enum_name">OFF</span>
15084 </li>
15085 <li>
15086 <span class="entry_type_enum_name">ON</span>
15087 </li>
15088 </ul>
15089
15090 </td> <!-- entry_type -->
15091
15092 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015093 <p>Whether black-level compensation is locked
15094to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015095 </td>
15096
15097 <td class="entry_units">
15098 </td>
15099
15100 <td class="entry_range">
15101 </td>
15102
Zhijun He69fc0ea2013-07-17 09:42:58 -070015103 <td class="entry_tags">
15104 <ul class="entry_tags">
15105 <li><a href="#tag_HAL2">HAL2</a></li>
15106 </ul>
15107 </td>
15108
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015109 </tr>
15110 <tr class="entries_header">
15111 <th class="th_details" colspan="5">Details</th>
15112 </tr>
15113 <tr class="entry_cont">
15114 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015115 <p>Whether the black level offset was locked for this frame.<wbr/> Should be
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080015116ON 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 -080015117a change in other capture settings forced the camera device to
Igor Murashkin0b080452013-12-27 15:30:25 -080015118perform a black level reset.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015119 </td>
15120 </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>
15143
15144 <!-- end of section -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015145 <tr><td colspan="6" id="section_sync" class="section">sync</td></tr>
15146
15147
15148 <tr><td colspan="6" class="kind">dynamic</td></tr>
15149
15150 <thead class="entries_header">
15151 <tr>
15152 <th class="th_name">Property Name</th>
15153 <th class="th_type">Type</th>
15154 <th class="th_description">Description</th>
15155 <th class="th_units">Units</th>
15156 <th class="th_range">Range</th>
15157 <th class="th_tags">Tags</th>
15158 </tr>
15159 </thead>
15160
15161 <tbody>
15162
15163
15164
15165
15166
15167
15168
15169
15170
15171
15172 <tr class="entry" id="dynamic_android.sync.frameNumber">
15173 <td class="entry_name" rowspan="5">
15174 android.<wbr/>sync.<wbr/>frame<wbr/>Number
15175 </td>
15176 <td class="entry_type">
15177 <span class="entry_type_name entry_type_name_enum">int64</span>
15178
15179 <span class="entry_type_visibility"> [hidden]</span>
15180
15181 <ul class="entry_type_enum">
15182 <li>
15183 <span class="entry_type_enum_name">CONVERGING</span>
15184 <span class="entry_type_enum_value">-1</span>
15185 <span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/>
15186Synchronization is in progress,<wbr/> and reading metadata from this
15187result may include a mix of data that have taken effect since the
15188last synchronization time.<wbr/></p>
15189<p>In some future result,<wbr/> within <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> frames,<wbr/>
15190this value will update to the actual frame number frame number
15191the result is guaranteed to be synchronized to (as long as the
15192request settings remain constant).<wbr/></p></span>
15193 </li>
15194 <li>
15195 <span class="entry_type_enum_name">UNKNOWN</span>
15196 <span class="entry_type_enum_value">-2</span>
15197 <span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/> The
15198result may have already converged,<wbr/> or it may be in progress.<wbr/>
15199Reading from this result may include some mix of settings from
15200past requests.<wbr/></p>
15201<p>After a settings change,<wbr/> the new settings will eventually all
15202take effect for the output buffers and results.<wbr/> However,<wbr/> this
15203value will not change when that happens.<wbr/> Altering settings
15204rapidly may provide outcomes using mixes of settings from recent
15205requests.<wbr/></p>
15206<p>This value is intended primarily for backwards compatibility with
15207the older camera implementations (for android.<wbr/>hardware.<wbr/>Camera).<wbr/></p></span>
15208 </li>
15209 </ul>
15210
15211 </td> <!-- entry_type -->
15212
15213 <td class="entry_description">
15214 <p>The frame number corresponding to the last request
15215with which the output result (metadata + buffers) has been fully
15216synchronized.<wbr/></p>
15217 </td>
15218
15219 <td class="entry_units">
15220 </td>
15221
15222 <td class="entry_range">
15223 <p>Either a non-negative value corresponding to a
15224<code>frame_<wbr/>number</code>,<wbr/> or one of the two enums (CONVERGING /<wbr/> UNKNOWN).<wbr/></p>
15225 </td>
15226
15227 <td class="entry_tags">
15228 <ul class="entry_tags">
15229 <li><a href="#tag_LIMITED">LIMITED</a></li>
15230 </ul>
15231 </td>
15232
15233 </tr>
15234 <tr class="entries_header">
15235 <th class="th_details" colspan="5">Details</th>
15236 </tr>
15237 <tr class="entry_cont">
15238 <td class="entry_details" colspan="5">
15239 <p>When a request is submitted to the camera device,<wbr/> there is usually a
15240delay of several frames before the controls get applied.<wbr/> A camera
15241device may either choose to account for this delay by implementing a
15242pipeline and carefully submit well-timed atomic control updates,<wbr/> or
15243it may start streaming control changes that span over several frame
15244boundaries.<wbr/></p>
15245<p>In the latter case,<wbr/> whenever a request's settings change relative to
15246the previous submitted request,<wbr/> the full set of changes may take
15247multiple frame durations to fully take effect.<wbr/> Some settings may
15248take effect sooner (in less frame durations) than others.<wbr/></p>
15249<p>While a set of control changes are being propagated,<wbr/> this value
15250will be CONVERGING.<wbr/></p>
15251<p>Once it is fully known that a set of control changes have been
15252finished propagating,<wbr/> and the resulting updated control settings
15253have been read back by the camera device,<wbr/> this value will be set
15254to a non-negative frame number (corresponding to the request to
15255which the results have synchronized to).<wbr/></p>
15256<p>Older camera device implementations may not have a way to detect
15257when all camera controls have been applied,<wbr/> and will always set this
15258value to UNKNOWN.<wbr/></p>
15259<p>FULL capability devices will always have this value set to the
15260frame number of the request corresponding to this result.<wbr/></p>
15261<p><em>Further details</em>:</p>
15262<ul>
15263<li>Whenever a request differs from the last request,<wbr/> any future
15264results not yet returned may have this value set to CONVERGING (this
15265could include any in-progress captures not yet returned by the camera
15266device,<wbr/> for more details see pipeline considerations below).<wbr/></li>
15267<li>Submitting a series of multiple requests that differ from the
15268previous request (e.<wbr/>g.<wbr/> r1,<wbr/> r2,<wbr/> r3 s.<wbr/>t.<wbr/> r1 != r2 != r3)
15269moves the new synchronization frame to the last non-repeating
15270request (using the smallest frame number from the contiguous list of
15271repeating requests).<wbr/></li>
15272<li>Submitting the same request repeatedly will not change this value
15273to CONVERGING,<wbr/> if it was already a non-negative value.<wbr/></li>
15274<li>When this value changes to non-negative,<wbr/> that means that all of the
15275metadata controls from the request have been applied,<wbr/> all of the
15276metadata controls from the camera device have been read to the
15277updated values (into the result),<wbr/> and all of the graphics buffers
15278corresponding to this result are also synchronized to the request.<wbr/></li>
15279</ul>
15280<p><em>Pipeline considerations</em>:</p>
15281<p>Submitting a request with updated controls relative to the previously
15282submitted requests may also invalidate the synchronization state
15283of all the results corresponding to currently in-flight requests.<wbr/></p>
15284<p>In other words,<wbr/> results for this current request and up to
15285<a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> prior requests may have their
15286<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> change to CONVERGING.<wbr/></p>
15287 </td>
15288 </tr>
15289
15290 <tr class="entries_header">
15291 <th class="th_details" colspan="5">HAL Implementation Details</th>
15292 </tr>
15293 <tr class="entry_cont">
15294 <td class="entry_details" colspan="5">
15295 <p>Using UNKNOWN here is illegal unless android.<wbr/>sync.<wbr/>max<wbr/>Latency
15296is also UNKNOWN.<wbr/></p>
15297<p>FULL capability devices should simply set this value to the
15298<code>frame_<wbr/>number</code> of the request this result corresponds to.<wbr/></p>
15299 </td>
15300 </tr>
15301
15302 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15303 <!-- end of entry -->
15304
15305
15306
15307 <!-- end of kind -->
15308 </tbody>
15309 <tr><td colspan="6" class="kind">static</td></tr>
15310
15311 <thead class="entries_header">
15312 <tr>
15313 <th class="th_name">Property Name</th>
15314 <th class="th_type">Type</th>
15315 <th class="th_description">Description</th>
15316 <th class="th_units">Units</th>
15317 <th class="th_range">Range</th>
15318 <th class="th_tags">Tags</th>
15319 </tr>
15320 </thead>
15321
15322 <tbody>
15323
15324
15325
15326
15327
15328
15329
15330
15331
15332
15333 <tr class="entry" id="static_android.sync.maxLatency">
15334 <td class="entry_name" rowspan="5">
15335 android.<wbr/>sync.<wbr/>max<wbr/>Latency
15336 </td>
15337 <td class="entry_type">
15338 <span class="entry_type_name entry_type_name_enum">int32</span>
15339
15340 <span class="entry_type_visibility"> [public]</span>
15341
15342 <ul class="entry_type_enum">
15343 <li>
15344 <span class="entry_type_enum_name">PER_FRAME_CONTROL</span>
15345 <span class="entry_type_enum_value">0</span>
15346 <span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/>
15347(and furthermore for all results,<wbr/>
15348<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>
15349<p>Changing controls over multiple requests one after another will
15350produce results that have those controls applied atomically
15351each frame.<wbr/></p>
15352<p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
15353 </li>
15354 <li>
15355 <span class="entry_type_enum_name">UNKNOWN</span>
15356 <span class="entry_type_enum_value">-1</span>
15357 <span class="entry_type_enum_notes"><p>Each new frame has some subset (potentially the entire set)
15358of the past requests applied to the camera settings.<wbr/></p>
15359<p>By submitting a series of identical requests,<wbr/> the camera device
15360will eventually have the camera settings applied,<wbr/> but it is
15361unknown when that exact point will be.<wbr/></p></span>
15362 </li>
15363 </ul>
15364
15365 </td> <!-- entry_type -->
15366
15367 <td class="entry_description">
15368 <p>The maximum number of frames that can occur after a request
15369(different than the previous) has been submitted,<wbr/> and before the
15370result's state becomes synchronized (by setting
15371<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> to a non-negative value).<wbr/></p>
15372 </td>
15373
15374 <td class="entry_units">
15375 number of processed requests
15376 </td>
15377
15378 <td class="entry_range">
15379 <p>&gt;= -1</p>
15380 </td>
15381
15382 <td class="entry_tags">
15383 <ul class="entry_tags">
15384 <li><a href="#tag_LIMITED">LIMITED</a></li>
15385 </ul>
15386 </td>
15387
15388 </tr>
15389 <tr class="entries_header">
15390 <th class="th_details" colspan="5">Details</th>
15391 </tr>
15392 <tr class="entry_cont">
15393 <td class="entry_details" colspan="5">
15394 <p>This defines the maximum distance (in number of metadata results),<wbr/>
15395between <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> and the equivalent
15396<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15397<p>In other words this acts as an upper boundary for how many frames
15398must occur before the camera device knows for a fact that the new
15399submitted camera settings have been applied in outgoing frames.<wbr/></p>
15400<p>For example if the distance was 2,<wbr/></p>
15401<pre><code>initial request = X (repeating)
15402request1 = X
15403request2 = Y
15404request3 = Y
15405request4 = Y
15406
15407where requestN has frameNumber N,<wbr/> and the first of the repeating
15408initial request's has frameNumber F (and F &lt; 1).<wbr/>
15409
15410initial result = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15411result1 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15412result2 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15413result3 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15414result4 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2 }
15415
15416where resultN has frameNumber N.<wbr/>
15417</code></pre>
15418<p>Since <code>result4</code> has a <code>frameNumber == 4</code> and
15419<code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2</code>,<wbr/> the distance is clearly
15420<code>4 - 2 = 2</code>.<wbr/></p>
15421 </td>
15422 </tr>
15423
15424 <tr class="entries_header">
15425 <th class="th_details" colspan="5">HAL Implementation Details</th>
15426 </tr>
15427 <tr class="entry_cont">
15428 <td class="entry_details" colspan="5">
15429 <p>Use <code>frame_<wbr/>count</code> from camera3_<wbr/>request_<wbr/>t instead of
15430<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15431<p>LIMITED devices are strongly encouraged to use a non-negative
15432value.<wbr/> If UNKNOWN is used here then app developers do not have a way
15433to know when sensor settings have been applied.<wbr/></p>
15434 </td>
15435 </tr>
15436
15437 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15438 <!-- end of entry -->
15439
15440
15441
15442 <!-- end of kind -->
15443 </tbody>
15444
15445 <!-- end of section -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015446<!-- </namespace> -->
15447 </table>
15448
15449 <div class="tags" id="tag_index">
15450 <h2>Tags</h2>
15451 <ul>
15452 <li id="tag_AWB">AWB -
15453 Needed for auto white balance
15454
15455 <ul class="tags_entries">
15456 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15457 </ul>
15458 </li> <!-- tag_AWB -->
15459 <li id="tag_BC">BC -
15460 Needed for backwards compatibility with old Java API
15461
15462 <ul class="tags_entries">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -080015463 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015464 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
15465 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
15466 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
15467 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
15468 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015469 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015470 <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
15471 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015472 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015473 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
15474 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15475 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
15476 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
15477 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
15478 <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
15479 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
15480 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -080015481 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015482 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
15483 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
15484 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
15485 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
15486 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
15487 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
15488 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
15489 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
15490 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
15491 <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
15492 <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
15493 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
15494 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
15495 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
15496 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
15497 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
15498 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
15499 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
15500 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
15501 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15502 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15503 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a> (static)</li>
15504 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
15505 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
15506 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
15507 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
15508 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
15509 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
Igor Murashkinf11a4df2013-05-07 10:00:46 -070015510 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015511 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
15512 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
15513 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015514 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015515 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015516 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15517 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15518 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15519 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
15520 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
15521 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
15522 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
15523 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
15524 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
15525 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
15526 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
15527 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
15528 </ul>
15529 </li> <!-- tag_BC -->
15530 <li id="tag_V1">V1 -
15531 New features for first camera 2 release (API1)
15532
15533 <ul class="tags_entries">
15534 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
15535 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
15536 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
15537 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
15538 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
15539 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
15540 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
15541 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
15542 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15543 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
15544 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
15545 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
15546 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15547 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
15548 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li>
15549 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
15550 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
15551 <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li>
15552 <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
15553 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
15554 <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
15555 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
15556 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
15557 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015558 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015559 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
15560 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15561 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15562 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15563 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15564 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li>
15565 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
15566 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
15567 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
15568 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
15569 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
15570 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
15571 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
15572 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
15573 </ul>
15574 </li> <!-- tag_V1 -->
15575 <li id="tag_ADV">ADV - None
15576 <ul class="tags_entries">
15577 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
15578 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
15579 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li>
15580 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li>
15581 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li>
15582 <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
15583 </ul>
15584 </li> <!-- tag_ADV -->
15585 <li id="tag_DNG">DNG -
15586 Needed for DNG file support
15587
15588 <ul class="tags_entries">
15589 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015590 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
15591 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
15592 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15593 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
15594 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
15595 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li>
15596 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li>
15597 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li>
15598 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li>
15599 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li>
15600 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li>
15601 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15602 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li>
15603 </ul>
15604 </li> <!-- tag_DNG -->
15605 <li id="tag_EXIF">EXIF - None
15606 <ul class="tags_entries">
15607 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15608 </ul>
15609 </li> <!-- tag_EXIF -->
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015610 <li id="tag_HAL2">HAL2 -
Alex Rayef40ad62013-10-01 17:52:33 -070015611 Entry is only used by camera device HAL 2.x
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015612
15613 <ul class="tags_entries">
15614 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li>
15615 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li>
15616 <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015617 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015618 </ul>
15619 </li> <!-- tag_HAL2 -->
Alex Rayef40ad62013-10-01 17:52:33 -070015620 <li id="tag_FULL">FULL -
15621 Entry is required for full hardware level devices, and optional for other hardware levels
15622
15623 <ul class="tags_entries">
15624 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15625 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15626 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li>
15627 </ul>
15628 </li> <!-- tag_FULL -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015629 <li id="tag_LIMITED">LIMITED -
15630 Entry assists with LIMITED device implementation. LIMITED devices
15631 must implement all entries with this tag. Optional for FULL devices.
15632
15633 <ul class="tags_entries">
15634 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a> (dynamic)</li>
15635 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a> (static)</li>
15636 </ul>
15637 </li> <!-- tag_LIMITED -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015638 </ul>
15639 </div>
15640
15641 [ <a href="#">top</a> ]
15642
15643</body>
15644</html>