blob: 404f4838fbd0acd1160319ca35c578b3e92c8a5d [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">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008513 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008514 </td>
8515
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008516 <td class="entry_tags">
8517 </td>
8518
8519 </tr>
8520 <tr class="entries_header">
8521 <th class="th_details" colspan="5">Details</th>
8522 </tr>
8523 <tr class="entry_cont">
8524 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008525 <p>Normalized coordinates refer to those in the
8526(-1000,<wbr/>1000) range mentioned in the
8527android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008528<p>HAL implementations should instead always use and emit
Igor Murashkin0b080452013-12-27 15:30:25 -08008529sensor array-relative coordinates for all region data.<wbr/> Does
8530not need to be listed in static metadata.<wbr/> Support will be
8531removed in future versions of camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008532 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008533 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008534
8535
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008536 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8537 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008538
8539
8540 <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008541 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008542 android.<wbr/>quirks.<wbr/>trigger<wbr/>Af<wbr/>With<wbr/>Auto
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008543 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008544 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008545 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008546
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008547 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008548
8549
8550 </td> <!-- entry_type -->
8551
8552 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008553 <p>If set to 1,<wbr/> then the camera service always
8554switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF
8555trigger.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008556 </td>
8557
8558 <td class="entry_units">
8559 </td>
8560
8561 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008562 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008563 </td>
8564
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008565 <td class="entry_tags">
8566 </td>
8567
8568 </tr>
8569 <tr class="entries_header">
8570 <th class="th_details" colspan="5">Details</th>
8571 </tr>
8572 <tr class="entry_cont">
8573 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008574 <p>HAL implementations should implement AF trigger
8575modes for AUTO,<wbr/> MACRO,<wbr/> CONTINUOUS_<wbr/>FOCUS,<wbr/> and
8576CONTINUOUS_<wbr/>PICTURE modes instead of using this flag.<wbr/> Does
8577not need to be listed in static metadata.<wbr/> Support will be
8578removed in future versions of camera service</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008579 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008580 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008581
8582
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008583 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8584 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008585
8586
8587 <tr class="entry" id="static_android.quirks.useZslFormat">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008588 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008589 android.<wbr/>quirks.<wbr/>use<wbr/>Zsl<wbr/>Format
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008590 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008591 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008592 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008593
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008594 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008595
8596
8597 </td> <!-- entry_type -->
8598
8599 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008600 <p>If set to 1,<wbr/> the camera service uses
8601CAMERA2_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>ZSL instead of
8602HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED for the zero
8603shutter lag stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008604 </td>
8605
8606 <td class="entry_units">
8607 </td>
8608
8609 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008610 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008611 </td>
8612
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008613 <td class="entry_tags">
8614 </td>
8615
8616 </tr>
8617 <tr class="entries_header">
8618 <th class="th_details" colspan="5">Details</th>
8619 </tr>
8620 <tr class="entry_cont">
8621 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008622 <p>HAL implementations should use gralloc usage flags
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008623to determine that a stream will be used for
Igor Murashkin0b080452013-12-27 15:30:25 -08008624zero-shutter-lag,<wbr/> instead of relying on an explicit
8625format setting.<wbr/> Does not need to be listed in static
8626metadata.<wbr/> Support will be removed in future versions of
8627camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008628 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008629 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008630
8631
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008632 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8633 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008634
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008635
8636 <tr class="entry" id="static_android.quirks.usePartialResult">
Igor Murashkin7761a222014-01-27 16:06:38 -08008637 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008638 android.<wbr/>quirks.<wbr/>use<wbr/>Partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008639 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008640 <td class="entry_type">
8641 <span class="entry_type_name">byte</span>
8642
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008643 <span class="entry_type_visibility"> [hidden]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008644
8645
8646 </td> <!-- entry_type -->
8647
8648 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008649 <p>If set to 1,<wbr/> the HAL will always split result
8650metadata for a single capture into multiple buffers,<wbr/>
8651returned using multiple process_<wbr/>capture_<wbr/>result calls.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008652 </td>
8653
8654 <td class="entry_units">
8655 </td>
8656
8657 <td class="entry_range">
Igor Murashkin7761a222014-01-27 16:06:38 -08008658 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008659 </td>
8660
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008661 <td class="entry_tags">
8662 </td>
8663
8664 </tr>
8665 <tr class="entries_header">
8666 <th class="th_details" colspan="5">Details</th>
8667 </tr>
8668 <tr class="entry_cont">
8669 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008670 <p>Does not need to be listed in static
8671metadata.<wbr/> Support for partial results will be reworked in
8672future versions of camera service.<wbr/> This quirk will stop
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008673working at that point; DO NOT USE without careful
Igor Murashkin0b080452013-12-27 15:30:25 -08008674consideration of future support.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008675 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008676 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008677
Igor Murashkin7761a222014-01-27 16:06:38 -08008678 <tr class="entries_header">
8679 <th class="th_details" colspan="5">HAL Implementation Details</th>
8680 </tr>
8681 <tr class="entry_cont">
8682 <td class="entry_details" colspan="5">
8683 <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
8684for information on how to implement partial results.<wbr/></p>
8685 </td>
8686 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008687
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008688 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8689 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008690
8691
8692
8693 <!-- end of kind -->
8694 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008695 <tr><td colspan="6" class="kind">dynamic</td></tr>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008696
8697 <thead class="entries_header">
8698 <tr>
8699 <th class="th_name">Property Name</th>
8700 <th class="th_type">Type</th>
8701 <th class="th_description">Description</th>
8702 <th class="th_units">Units</th>
8703 <th class="th_range">Range</th>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008704 <th class="th_tags">Tags</th>
8705 </tr>
8706 </thead>
8707
8708 <tbody>
8709
8710
8711
8712
8713
8714
8715
8716
8717
8718
8719 <tr class="entry" id="dynamic_android.quirks.partialResult">
Igor Murashkin7761a222014-01-27 16:06:38 -08008720 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008721 android.<wbr/>quirks.<wbr/>partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008722 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008723 <td class="entry_type">
8724 <span class="entry_type_name entry_type_name_enum">byte</span>
8725
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008726 <span class="entry_type_visibility"> [hidden as boolean]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008727
8728 <ul class="entry_type_enum">
8729 <li>
8730 <span class="entry_type_enum_name">FINAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008731 <span class="entry_type_enum_notes"><p>The last or only metadata result buffer
8732for this capture.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008733 </li>
8734 <li>
8735 <span class="entry_type_enum_name">PARTIAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008736 <span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this
8737capture.<wbr/> More result buffers for this capture will be sent
8738by the HAL,<wbr/> the last of which will be marked
8739FINAL.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008740 </li>
8741 </ul>
8742
8743 </td> <!-- entry_type -->
8744
8745 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008746 <p>Whether a result given to the framework is the
8747final one for the capture,<wbr/> or only a partial that contains a
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008748subset of the full set of dynamic metadata
Igor Murashkin0b080452013-12-27 15:30:25 -08008749values.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008750 </td>
8751
8752 <td class="entry_units">
8753 </td>
8754
8755 <td class="entry_range">
Igor Murashkin7761a222014-01-27 16:06:38 -08008756 <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 -07008757 </td>
8758
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008759 <td class="entry_tags">
8760 </td>
8761
8762 </tr>
8763 <tr class="entries_header">
8764 <th class="th_details" colspan="5">Details</th>
8765 </tr>
8766 <tr class="entry_cont">
8767 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008768 <p>The entries in the result metadata buffers for a
8769single capture may not overlap,<wbr/> except for this entry.<wbr/> The
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008770FINAL buffers must retain FIFO ordering relative to the
Igor Murashkin0b080452013-12-27 15:30:25 -08008771requests that generate them,<wbr/> so the FINAL buffer for frame 3 must
8772always be sent to the framework after the FINAL buffer for frame 2,<wbr/> and
8773before the FINAL buffer for frame 4.<wbr/> PARTIAL buffers may be returned
8774in any order relative to other frames,<wbr/> but all PARTIAL buffers for a given
8775capture must arrive before the FINAL buffer for that capture.<wbr/> This entry may
8776only be used by the HAL if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008777 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008778 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008779
Igor Murashkin7761a222014-01-27 16:06:38 -08008780 <tr class="entries_header">
8781 <th class="th_details" colspan="5">HAL Implementation Details</th>
8782 </tr>
8783 <tr class="entry_cont">
8784 <td class="entry_details" colspan="5">
8785 <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
8786for information on how to implement partial results.<wbr/></p>
8787 </td>
8788 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008789
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008790 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8791 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008792
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008793
8794
8795 <!-- end of kind -->
8796 </tbody>
8797
8798 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008799 <tr><td colspan="6" id="section_request" class="section">request</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008800
8801
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008802 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008803
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008804 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008805 <tr>
8806 <th class="th_name">Property Name</th>
8807 <th class="th_type">Type</th>
8808 <th class="th_description">Description</th>
8809 <th class="th_units">Units</th>
8810 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008811 <th class="th_tags">Tags</th>
8812 </tr>
8813 </thead>
8814
8815 <tbody>
8816
8817
8818
8819
8820
8821
8822
8823
8824
8825
8826 <tr class="entry" id="controls_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008827 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008828 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008829 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008830 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008831 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008832
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008833 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008834
8835
8836 </td> <!-- entry_type -->
8837
8838 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008839 <p>A frame counter set by the framework.<wbr/> Must
8840be maintained unchanged in output frame.<wbr/> This value monotonically
8841increases with every new result (that is,<wbr/> each new result has a unique
8842frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008843 </td>
8844
8845 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008846 incrementing integer
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008847 </td>
8848
8849 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008850 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> Any int.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008851 </td>
8852
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008853 <td class="entry_tags">
8854 </td>
8855
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008856 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008857
8858
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008859 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8860 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008861
8862
8863 <tr class="entry" id="controls_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008864 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008865 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008866 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008867 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008868 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008869
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008870 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008871
8872
8873 </td> <!-- entry_type -->
8874
8875 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008876 <p>An application-specified ID for the current
8877request.<wbr/> Must be maintained unchanged in output
8878frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008879 </td>
8880
8881 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008882 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008883 </td>
8884
8885 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008886 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008887 </td>
8888
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008889 <td class="entry_tags">
8890 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008891 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008892 </ul>
8893 </td>
8894
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008895 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008896
8897
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008898 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8899 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008900
8901
8902 <tr class="entry" id="controls_android.request.inputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008903 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008904 android.<wbr/>request.<wbr/>input<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008905 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008906 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07008907 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008908 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008909
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008910 <span class="entry_type_array">
8911 n
8912 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008913 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008914
8915
8916 </td> <!-- entry_type -->
8917
8918 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008919 <p>List which camera reprocess stream is used
8920for the source of reprocessing data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008921 </td>
8922
8923 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008924 List of camera reprocess stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008925 </td>
8926
8927 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008928 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
8929<p>Typically,<wbr/> only one entry allowed,<wbr/> must be a valid reprocess stream ID.<wbr/></p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008930<p>If android.<wbr/>jpeg.<wbr/>needs<wbr/>Thumbnail is set,<wbr/> then multiple
8931reprocess streams may be included in a single request; they
8932must be different scaled versions of the same image.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008933 </td>
8934
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008935 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008936 <ul class="entry_tags">
8937 <li><a href="#tag_HAL2">HAL2</a></li>
8938 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008939 </td>
8940
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008941 </tr>
8942 <tr class="entries_header">
8943 <th class="th_details" colspan="5">Details</th>
8944 </tr>
8945 <tr class="entry_cont">
8946 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008947 <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> ==
Igor Murashkin0b080452013-12-27 15:30:25 -08008948REPROCESS.<wbr/> Ignored otherwise</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008949 </td>
8950 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008951
8952
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008953 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8954 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008955
8956
8957 <tr class="entry" id="controls_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008958 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008959 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008960 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008961 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008962 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008963
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008964 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008965
8966 <ul class="entry_type_enum">
8967 <li>
8968 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008969 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
8970for application-bound buffer data.<wbr/> If no
8971application-bound streams exist,<wbr/> no frame should be
8972placed in the output frame queue.<wbr/> If such streams
8973exist,<wbr/> a frame should be placed on the output queue
8974with null metadata but with the necessary output buffer
8975information.<wbr/> Timestamp information should still be
8976included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008977 </li>
8978 <li>
8979 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008980 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
8981only be produced if they are separately
8982enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008983 </li>
8984 </ul>
8985
8986 </td> <!-- entry_type -->
8987
8988 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008989 <p>How much metadata to produce on
8990output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008991 </td>
8992
8993 <td class="entry_units">
8994 </td>
8995
8996 <td class="entry_range">
8997 </td>
8998
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008999 <td class="entry_tags">
9000 </td>
9001
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009002 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009003
9004
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009005 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9006 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009007
9008
9009 <tr class="entry" id="controls_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009010 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009011 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009012 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009013 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009014 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009015 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009016
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009017 <span class="entry_type_array">
9018 n
9019 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009020 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009021
9022
9023 </td> <!-- entry_type -->
9024
9025 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009026 <p>Lists which camera output streams image data
9027from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009028 </td>
9029
9030 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009031 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009032 </td>
9033
9034 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08009035 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> List must only include streams that have been
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009036created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009037 </td>
9038
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009039 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009040 <ul class="entry_tags">
9041 <li><a href="#tag_HAL2">HAL2</a></li>
9042 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009043 </td>
9044
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009045 </tr>
9046 <tr class="entries_header">
9047 <th class="th_details" colspan="5">Details</th>
9048 </tr>
9049 <tr class="entry_cont">
9050 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009051 <p>If no output streams are listed,<wbr/> then the image
9052data should simply be discarded.<wbr/> The image data must
9053still be captured for metadata and statistics production,<wbr/>
9054and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009055 </td>
9056 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009057
9058
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009059 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9060 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009061
9062
9063 <tr class="entry" id="controls_android.request.type">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009064 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009065 android.<wbr/>request.<wbr/>type
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009066 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009067 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009068 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009069
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009070 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009071
9072 <ul class="entry_type_enum">
9073 <li>
9074 <span class="entry_type_enum_name">CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009075 <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
9076and process it according to the
9077settings</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009078 </li>
9079 <li>
9080 <span class="entry_type_enum_name">REPROCESS</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009081 <span class="entry_type_enum_notes"><p>Process previously captured data; the
9082android.<wbr/>request.<wbr/>input<wbr/>Stream parameter determines the
9083source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
9084needed for reprocessing with [RP]</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009085 </li>
9086 </ul>
9087
9088 </td> <!-- entry_type -->
9089
9090 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009091 <p>The type of the request; either CAPTURE or
9092REPROCESS.<wbr/> For HAL3,<wbr/> this tag is redundant.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009093 </td>
9094
9095 <td class="entry_units">
9096 </td>
9097
9098 <td class="entry_range">
9099 </td>
9100
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009101 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009102 <ul class="entry_tags">
9103 <li><a href="#tag_HAL2">HAL2</a></li>
9104 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009105 </td>
9106
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009107 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009108
9109
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009110 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9111 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009112
9113
9114
9115 <!-- end of kind -->
9116 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009117 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009118
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009119 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009120 <tr>
9121 <th class="th_name">Property Name</th>
9122 <th class="th_type">Type</th>
9123 <th class="th_description">Description</th>
9124 <th class="th_units">Units</th>
9125 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009126 <th class="th_tags">Tags</th>
9127 </tr>
9128 </thead>
9129
9130 <tbody>
9131
9132
9133
9134
9135
9136
9137
9138
9139
9140
9141 <tr class="entry" id="static_android.request.maxNumOutputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009142 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009143 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009144 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009145 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009146 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009147 <span class="entry_type_container">x</span>
9148
9149 <span class="entry_type_array">
9150 3
9151 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009152 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009153
9154
9155 </td> <!-- entry_type -->
9156
9157 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009158 <p>How many output streams can be allocated at
9159the same time for each type of stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009160 </td>
9161
9162 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009163 The number of raw sensor streams; the number of
9164 processed,<wbr/> uncompressed streams; and the number of
9165 JPEG-compressed streams
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009166 </td>
9167
9168 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009169 <p>&gt;=1 for Raw and JPEG-compressed stream.<wbr/> &gt;= 3
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009170for processed,<wbr/> uncompressed streams</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009171 </td>
9172
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009173 <td class="entry_tags">
9174 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009175 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009176 </ul>
9177 </td>
9178
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009179 </tr>
9180 <tr class="entries_header">
9181 <th class="th_details" colspan="5">Details</th>
9182 </tr>
9183 <tr class="entry_cont">
9184 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009185 <p>Video snapshot with preview callbacks requires 3
9186processed streams (preview,<wbr/> record,<wbr/> app callbacks) and
9187one JPEG stream (snapshot)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009188 </td>
9189 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009190
9191
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009192 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9193 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009194
9195
9196 <tr class="entry" id="static_android.request.maxNumReprocessStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009197 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009198 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Reprocess<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009199 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009200 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009201 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009202 <span class="entry_type_container">x</span>
9203
9204 <span class="entry_type_array">
9205 1
9206 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009207 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009208
9209
9210 </td> <!-- entry_type -->
9211
9212 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009213 <p>How many reprocessing streams of any type
9214can be allocated at the same time</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009215 </td>
9216
9217 <td class="entry_units">
9218 </td>
9219
9220 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009221 <p>&gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009222 </td>
9223
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009224 <td class="entry_tags">
9225 </td>
9226
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009227 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009228
9229
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009230 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9231 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009232
Igor Murashkina46e02f2014-01-09 17:43:38 -08009233
9234 <tr class="entry" id="static_android.request.pipelineMaxDepth">
9235 <td class="entry_name" rowspan="5">
9236 android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth
9237 </td>
9238 <td class="entry_type">
9239 <span class="entry_type_name">byte</span>
9240
9241 <span class="entry_type_visibility"> [public]</span>
9242
9243
9244 </td> <!-- entry_type -->
9245
9246 <td class="entry_description">
9247 <p>Specifies the number of maximum pipeline stages a frame
9248has to go through from when it's exposed to when it's available
9249to the framework.<wbr/></p>
9250 </td>
9251
9252 <td class="entry_units">
9253 </td>
9254
9255 <td class="entry_range">
9256 </td>
9257
9258 <td class="entry_tags">
9259 </td>
9260
9261 </tr>
9262 <tr class="entries_header">
9263 <th class="th_details" colspan="5">Details</th>
9264 </tr>
9265 <tr class="entry_cont">
9266 <td class="entry_details" colspan="5">
9267 <p>A typical minimum value for this is 2 (one stage to expose,<wbr/>
9268one stage to readout) from the sensor.<wbr/> The ISP then usually adds
9269its own stages to do custom HW processing.<wbr/> Further stages may be
9270added by SW processing.<wbr/></p>
9271<p>Depending on what settings are used (e.<wbr/>g.<wbr/> YUV,<wbr/> JPEG) and what
9272processing is enabled (e.<wbr/>g.<wbr/> face detection),<wbr/> the actual pipeline
9273depth (specified by <a href="#dynamic_android.request.pipelineDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Depth</a>) may be less than
9274the max pipeline depth.<wbr/></p>
9275<p>A pipeline depth of X stages is equivalent to a pipeline latency of
9276X frame intervals.<wbr/></p>
9277<p>This value will be 8 or less.<wbr/></p>
9278 </td>
9279 </tr>
9280
9281 <tr class="entries_header">
9282 <th class="th_details" colspan="5">HAL Implementation Details</th>
9283 </tr>
9284 <tr class="entry_cont">
9285 <td class="entry_details" colspan="5">
9286 <p>This value should be 4 or less.<wbr/></p>
9287 </td>
9288 </tr>
9289
9290 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9291 <!-- end of entry -->
9292
Igor Murashkin2e291102014-01-10 14:18:30 -08009293
9294 <tr class="entry" id="static_android.request.partialResultCount">
9295 <td class="entry_name" rowspan="3">
9296 android.<wbr/>request.<wbr/>partial<wbr/>Result<wbr/>Count
9297 </td>
9298 <td class="entry_type">
9299 <span class="entry_type_name">int32</span>
9300
9301 <span class="entry_type_visibility"> [public]</span>
9302
9303
9304 </td> <!-- entry_type -->
9305
9306 <td class="entry_description">
9307 <p>Optional.<wbr/> Defaults to 1.<wbr/> Defines how many sub-components
9308a result will be composed of.<wbr/></p>
9309 </td>
9310
9311 <td class="entry_units">
9312 </td>
9313
9314 <td class="entry_range">
9315 <p>&gt;= 1</p>
9316 </td>
9317
9318 <td class="entry_tags">
9319 </td>
9320
9321 </tr>
9322 <tr class="entries_header">
9323 <th class="th_details" colspan="5">Details</th>
9324 </tr>
9325 <tr class="entry_cont">
9326 <td class="entry_details" colspan="5">
9327 <p>In order to combat the pipeline latency,<wbr/> partial results
9328may be delivered to the application layer from the camera device as
9329soon as they are available.<wbr/></p>
9330<p>A value of 1 means that partial results are not supported.<wbr/></p>
9331<p>A typical use case for this might be: after requesting an AF lock the
9332new AF state might be available 50% of the way through the pipeline.<wbr/>
9333The camera device could then immediately dispatch this state via a
9334partial result to the framework/<wbr/>application layer,<wbr/> and the rest of
9335the metadata via later partial results.<wbr/></p>
9336 </td>
9337 </tr>
9338
9339
9340 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9341 <!-- end of entry -->
9342
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009343
9344
9345 <!-- end of kind -->
9346 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009347 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009348
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009349 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009350 <tr>
9351 <th class="th_name">Property Name</th>
9352 <th class="th_type">Type</th>
9353 <th class="th_description">Description</th>
9354 <th class="th_units">Units</th>
9355 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009356 <th class="th_tags">Tags</th>
9357 </tr>
9358 </thead>
9359
9360 <tbody>
9361
9362
9363
9364
9365
9366
9367
9368
9369
9370
9371 <tr class="entry" id="dynamic_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009372 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009373 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009374 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009375 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009376 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009377
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009378 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009379
9380
9381 </td> <!-- entry_type -->
9382
9383 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009384 <p>A frame counter set by the framework.<wbr/> This value monotonically
9385increases with every new result (that is,<wbr/> each new result has a unique
9386frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009387 </td>
9388
9389 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009390 count of frames
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009391 </td>
9392
9393 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009394 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009395 </td>
9396
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009397 <td class="entry_tags">
9398 </td>
9399
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009400 </tr>
9401 <tr class="entries_header">
9402 <th class="th_details" colspan="5">Details</th>
9403 </tr>
9404 <tr class="entry_cont">
9405 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009406 <p>Reset on release()</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009407 </td>
9408 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009409
9410
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009411 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9412 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009413
9414
9415 <tr class="entry" id="dynamic_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009416 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009417 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009418 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009419 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009420 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009421
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009422 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009423
9424
9425 </td> <!-- entry_type -->
9426
9427 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009428 <p>An application-specified ID for the current
9429request.<wbr/> Must be maintained unchanged in output
9430frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009431 </td>
9432
9433 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009434 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009435 </td>
9436
9437 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009438 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009439 </td>
9440
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009441 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009442 <ul class="entry_tags">
9443 <li><a href="#tag_V1">V1</a></li>
9444 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009445 </td>
9446
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009447 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009448
9449
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009450 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9451 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009452
9453
9454 <tr class="entry" id="dynamic_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009455 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009456 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009457 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009458 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009459 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009460
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009461 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009462
9463 <ul class="entry_type_enum">
9464 <li>
9465 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009466 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
9467for application-bound buffer data.<wbr/> If no
9468application-bound streams exist,<wbr/> no frame should be
9469placed in the output frame queue.<wbr/> If such streams
9470exist,<wbr/> a frame should be placed on the output queue
9471with null metadata but with the necessary output buffer
9472information.<wbr/> Timestamp information should still be
9473included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009474 </li>
9475 <li>
9476 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009477 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
9478only be produced if they are separately
9479enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009480 </li>
9481 </ul>
9482
9483 </td> <!-- entry_type -->
9484
9485 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009486 <p>How much metadata to produce on
9487output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009488 </td>
9489
9490 <td class="entry_units">
9491 </td>
9492
9493 <td class="entry_range">
9494 </td>
9495
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009496 <td class="entry_tags">
9497 </td>
9498
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009499 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009500
9501
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009502 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9503 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009504
9505
9506 <tr class="entry" id="dynamic_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009507 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009508 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009509 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009510 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009511 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009512 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009513
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009514 <span class="entry_type_array">
9515 n
9516 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009517 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009518
9519
9520 </td> <!-- entry_type -->
9521
9522 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009523 <p>Lists which camera output streams image data
9524from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009525 </td>
9526
9527 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009528 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009529 </td>
9530
9531 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08009532 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> List must only include streams that have been
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009533created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009534 </td>
9535
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009536 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009537 <ul class="entry_tags">
9538 <li><a href="#tag_HAL2">HAL2</a></li>
9539 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009540 </td>
9541
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009542 </tr>
9543 <tr class="entries_header">
9544 <th class="th_details" colspan="5">Details</th>
9545 </tr>
9546 <tr class="entry_cont">
9547 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009548 <p>If no output streams are listed,<wbr/> then the image
9549data should simply be discarded.<wbr/> The image data must
9550still be captured for metadata and statistics production,<wbr/>
9551and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009552 </td>
9553 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009554
9555
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009556 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9557 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009558
Igor Murashkina46e02f2014-01-09 17:43:38 -08009559
9560 <tr class="entry" id="dynamic_android.request.pipelineDepth">
9561 <td class="entry_name" rowspan="5">
9562 android.<wbr/>request.<wbr/>pipeline<wbr/>Depth
9563 </td>
9564 <td class="entry_type">
9565 <span class="entry_type_name">byte</span>
9566
9567 <span class="entry_type_visibility"> [public]</span>
9568
9569
9570 </td> <!-- entry_type -->
9571
9572 <td class="entry_description">
9573 <p>Specifies the number of pipeline stages the frame went
9574through from when it was exposed to when the final completed result
9575was available to the framework.<wbr/></p>
9576 </td>
9577
9578 <td class="entry_units">
9579 </td>
9580
9581 <td class="entry_range">
9582 <p>&lt;= <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a></p>
9583 </td>
9584
9585 <td class="entry_tags">
9586 </td>
9587
9588 </tr>
9589 <tr class="entries_header">
9590 <th class="th_details" colspan="5">Details</th>
9591 </tr>
9592 <tr class="entry_cont">
9593 <td class="entry_details" colspan="5">
9594 <p>Depending on what settings are used in the request,<wbr/> and
9595what streams are configured,<wbr/> the data may undergo less processing,<wbr/>
9596and some pipeline stages skipped.<wbr/></p>
9597<p>See <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> for more details.<wbr/></p>
9598 </td>
9599 </tr>
9600
9601 <tr class="entries_header">
9602 <th class="th_details" colspan="5">HAL Implementation Details</th>
9603 </tr>
9604 <tr class="entry_cont">
9605 <td class="entry_details" colspan="5">
9606 <p>This value must always represent the accurate count of how many
9607pipeline stages were actually used.<wbr/></p>
9608 </td>
9609 </tr>
9610
9611 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9612 <!-- end of entry -->
9613
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009614
9615
9616 <!-- end of kind -->
9617 </tbody>
9618
9619 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009620 <tr><td colspan="6" id="section_scaler" class="section">scaler</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009621
9622
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009623 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009624
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009625 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009626 <tr>
9627 <th class="th_name">Property Name</th>
9628 <th class="th_type">Type</th>
9629 <th class="th_description">Description</th>
9630 <th class="th_units">Units</th>
9631 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009632 <th class="th_tags">Tags</th>
9633 </tr>
9634 </thead>
9635
9636 <tbody>
9637
9638
9639
9640
9641
9642
9643
9644
9645
9646
9647 <tr class="entry" id="controls_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009648 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009649 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009650 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009651 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009652 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009653 <span class="entry_type_container">x</span>
9654
9655 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07009656 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009657 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009658 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009659
9660
9661 </td> <!-- entry_type -->
9662
9663 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009664 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
9665<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
9666(width,<wbr/> height).<wbr/> The region of the sensor that is used for
9667output.<wbr/> Each stream must use this rectangle to produce its
9668output,<wbr/> cropping to a smaller region if necessary to
9669maintain the stream's aspect ratio.<wbr/></p>
9670<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009671 </td>
9672
9673 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009674 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
9675 in pixels; (0,<wbr/>0) is top-left corner of
9676 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009677 </td>
9678
9679 <td class="entry_range">
9680 </td>
9681
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009682 <td class="entry_tags">
9683 <ul class="entry_tags">
9684 <li><a href="#tag_BC">BC</a></li>
9685 </ul>
9686 </td>
9687
9688 </tr>
9689 <tr class="entries_header">
9690 <th class="th_details" colspan="5">Details</th>
9691 </tr>
9692 <tr class="entry_cont">
9693 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009694 <p>Any additional per-stream cropping must be done to
9695maximize the final pixel area of the stream.<wbr/></p>
9696<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
9697ratio,<wbr/> then 4:3 streams should use the exact crop
9698region.<wbr/> 16:9 streams should further crop vertically
9699(letterbox).<wbr/></p>
9700<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
9701outputs should crop horizontally (pillarbox),<wbr/> and 16:9
9702streams should match exactly.<wbr/> These additional crops must
9703be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009704<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -08009705times,<wbr/> no matter what the relative aspect ratios of the
9706crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009707corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -08009708larger than active pixel array.<wbr/> Width and height may be
9709rounded to nearest larger supportable width,<wbr/> especially
9710for raw output,<wbr/> where only a few fixed scales may be
9711possible.<wbr/> The width and height of the crop region cannot
9712be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
9713android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
9714activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
9715respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009716 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009717 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009718
9719
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009720 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9721 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009722
9723
9724
9725 <!-- end of kind -->
9726 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009727 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009728
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009729 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009730 <tr>
9731 <th class="th_name">Property Name</th>
9732 <th class="th_type">Type</th>
9733 <th class="th_description">Description</th>
9734 <th class="th_units">Units</th>
9735 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009736 <th class="th_tags">Tags</th>
9737 </tr>
9738 </thead>
9739
9740 <tbody>
9741
9742
9743
9744
9745
9746
9747
9748
9749
9750
9751 <tr class="entry" id="static_android.scaler.availableFormats">
Zhijun Heb8317e22014-01-16 09:47:07 -08009752 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009753 android.<wbr/>scaler.<wbr/>available<wbr/>Formats
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009754 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009755 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009756 <span class="entry_type_name entry_type_name_enum">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009757 <span class="entry_type_container">x</span>
9758
9759 <span class="entry_type_array">
9760 n
9761 </span>
Eino-Ville Talvalad4e240a2013-08-08 12:56:37 -07009762 <span class="entry_type_visibility"> [public as imageFormat]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009763
9764 <ul class="entry_type_enum">
9765 <li>
9766 <span class="entry_type_enum_name">RAW_SENSOR</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009767 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009768 <span class="entry_type_enum_value">0x20</span>
9769 </li>
9770 <li>
9771 <span class="entry_type_enum_name">YV12</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009772 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009773 <span class="entry_type_enum_value">0x32315659</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009774 <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009775 </li>
9776 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009777 <span class="entry_type_enum_name">YCrCb_420_SP</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009778 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009779 <span class="entry_type_enum_value">0x11</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009780 <span class="entry_type_enum_notes"><p>NV21</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009781 </li>
9782 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009783 <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span>
9784 <span class="entry_type_enum_value">0x22</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009785 <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009786 </li>
9787 <li>
9788 <span class="entry_type_enum_name">YCbCr_420_888</span>
9789 <span class="entry_type_enum_value">0x23</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009790 <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009791 </li>
9792 <li>
9793 <span class="entry_type_enum_name">BLOB</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009794 <span class="entry_type_enum_value">0x21</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009795 <span class="entry_type_enum_notes"><p>JPEG format</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009796 </li>
9797 </ul>
9798
9799 </td> <!-- entry_type -->
9800
9801 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009802 <p>The list of image formats that are supported by this
9803camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009804 </td>
9805
9806 <td class="entry_units">
9807 </td>
9808
9809 <td class="entry_range">
9810 </td>
9811
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009812 <td class="entry_tags">
9813 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009814 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009815 </ul>
9816 </td>
9817
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009818 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009819 <tr class="entries_header">
9820 <th class="th_details" colspan="5">Details</th>
9821 </tr>
9822 <tr class="entry_cont">
9823 <td class="entry_details" colspan="5">
9824 <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p>
9825<p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p>
9826 </td>
9827 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009828
Zhijun Heb8317e22014-01-16 09:47:07 -08009829 <tr class="entries_header">
9830 <th class="th_details" colspan="5">HAL Implementation Details</th>
9831 </tr>
9832 <tr class="entry_cont">
9833 <td class="entry_details" colspan="5">
9834 <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
9835system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
9836<p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform
9837gralloc module will select a format based on the usage flags provided
9838by the camera HAL device and the other endpoint of the stream.<wbr/> It is
9839usually used by preview and recording streams,<wbr/> where the application doesn't
9840need access the image data.<wbr/></p>
9841<p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream
9842needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p>
9843<p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p>
9844 </td>
9845 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009846
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009847 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9848 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009849
9850
9851 <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009852 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009853 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009854 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009855 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009856 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009857 <span class="entry_type_container">x</span>
9858
9859 <span class="entry_type_array">
9860 n
9861 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009862 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009863
9864
9865 </td> <!-- entry_type -->
9866
9867 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009868 <p>The minimum frame duration that is supported
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009869for 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 -08009870 </td>
9871
9872 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009873 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009874 </td>
9875
9876 <td class="entry_range">
9877 </td>
9878
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009879 <td class="entry_tags">
9880 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009881 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009882 </ul>
9883 </td>
9884
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009885 </tr>
9886 <tr class="entries_header">
9887 <th class="th_details" colspan="5">Details</th>
9888 </tr>
9889 <tr class="entry_cont">
9890 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009891 <p>This corresponds to the minimum steady-state frame duration when only
9892that JPEG stream is active and captured in a burst,<wbr/> with all
9893processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST.<wbr/></p>
9894<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009895frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -08009896durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009897 </td>
9898 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009899
9900
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009901 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9902 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009903
9904
9905 <tr class="entry" id="static_android.scaler.availableJpegSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -08009906 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009907 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009908 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009909 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009910 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009911 <span class="entry_type_container">x</span>
9912
9913 <span class="entry_type_array">
9914 n x 2
9915 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009916 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009917
9918
9919 </td> <!-- entry_type -->
9920
9921 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009922 <p>The JPEG resolutions that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009923 </td>
9924
9925 <td class="entry_units">
9926 </td>
9927
9928 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009929 </td>
9930
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009931 <td class="entry_tags">
9932 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009933 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009934 </ul>
9935 </td>
9936
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009937 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009938 <tr class="entries_header">
9939 <th class="th_details" colspan="5">Details</th>
9940 </tr>
9941 <tr class="entry_cont">
9942 <td class="entry_details" colspan="5">
9943 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support
9944sensor 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>
9945 </td>
9946 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009947
Zhijun Heb8317e22014-01-16 09:47:07 -08009948 <tr class="entries_header">
9949 <th class="th_details" colspan="5">HAL Implementation Details</th>
9950 </tr>
9951 <tr class="entry_cont">
9952 <td class="entry_details" colspan="5">
9953 <p>The HAL must include sensor maximum resolution
9954(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/>
9955and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p>
9956 </td>
9957 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009958
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009959 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9960 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009961
9962
9963 <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009964 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009965 android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009966 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009967 <td class="entry_type">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07009968 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009969
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009970 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009971
9972
9973 </td> <!-- entry_type -->
9974
9975 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009976 <p>The maximum ratio between active area width
9977and crop region width,<wbr/> or between active area height and
9978crop region height,<wbr/> if the crop region height is larger
9979than width</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009980 </td>
9981
9982 <td class="entry_units">
9983 </td>
9984
9985 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009986 <p>&gt;=1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009987 </td>
9988
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009989 <td class="entry_tags">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07009990 <ul class="entry_tags">
9991 <li><a href="#tag_BC">BC</a></li>
9992 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009993 </td>
9994
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009995 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009996
9997
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009998 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9999 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010000
10001
10002 <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010003 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010004 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010005 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010006 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010007 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010008 <span class="entry_type_container">x</span>
10009
10010 <span class="entry_type_array">
10011 n
10012 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010013 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010014
10015
10016 </td> <!-- entry_type -->
10017
10018 <td class="entry_description">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010019 <p>For each available processed output size (defined in
10020<a href="#static_android.scaler.availableProcessedSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes</a>),<wbr/> this property lists the
10021minimum supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010022 </td>
10023
10024 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010025 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010026 </td>
10027
10028 <td class="entry_range">
10029 </td>
10030
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010031 <td class="entry_tags">
10032 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010033 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010034 </ul>
10035 </td>
10036
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010037 </tr>
10038 <tr class="entries_header">
10039 <th class="th_details" colspan="5">Details</th>
10040 </tr>
10041 <tr class="entry_cont">
10042 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010043 <p>This should correspond to the frame duration when only that processed
10044stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
10045set to FAST.<wbr/></p>
10046<p>When multiple streams are configured,<wbr/> the minimum frame duration will
10047be &gt;= max(individual stream min durations).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010048 </td>
10049 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010050
10051
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010052 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10053 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010054
10055
10056 <tr class="entry" id="static_android.scaler.availableProcessedSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -080010057 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010058 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010059 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010060 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010061 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010062 <span class="entry_type_container">x</span>
10063
10064 <span class="entry_type_array">
10065 n x 2
10066 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010067 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010068
10069
10070 </td> <!-- entry_type -->
10071
10072 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010073 <p>The resolutions available for use with
10074processed output streams,<wbr/> such as YV12,<wbr/> NV12,<wbr/> and
10075platform opaque YUV/<wbr/>RGB streams to the GPU or video
Zhijun Heb8317e22014-01-16 09:47:07 -080010076encoders.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010077 </td>
10078
10079 <td class="entry_units">
10080 </td>
10081
10082 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010083 </td>
10084
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010085 <td class="entry_tags">
10086 <ul class="entry_tags">
10087 <li><a href="#tag_BC">BC</a></li>
10088 </ul>
10089 </td>
10090
10091 </tr>
10092 <tr class="entries_header">
10093 <th class="th_details" colspan="5">Details</th>
10094 </tr>
10095 <tr class="entry_cont">
10096 <td class="entry_details" colspan="5">
Zhijun Heb8317e22014-01-16 09:47:07 -080010097 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p>
10098<p>For a given use case,<wbr/> the actual maximum supported resolution
10099may be lower than what is listed here,<wbr/> depending on the destination
10100Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
10101the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
10102smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
10103can provide.<wbr/></p>
10104<p>Please reference the documentation for the image data destination to
10105check if it limits the maximum size for image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010106 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010107 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010108
Zhijun Heb8317e22014-01-16 09:47:07 -080010109 <tr class="entries_header">
10110 <th class="th_details" colspan="5">HAL Implementation Details</th>
10111 </tr>
10112 <tr class="entry_cont">
10113 <td class="entry_details" colspan="5">
10114 <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/>
10115the HAL must include all JPEG sizes listed in android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
10116and each below resolution if it is smaller than or equal to the sensor
10117maximum resolution (if they are not listed in JPEG sizes already):</p>
10118<ul>
10119<li>240p (320 x 240)</li>
10120<li>480p (640 x 480)</li>
10121<li>720p (1280 x 720)</li>
10122<li>1080p (1920 x 1080)</li>
10123</ul>
10124<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/>
10125the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p>
10126 </td>
10127 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010128
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010129 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10130 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010131
10132
10133 <tr class="entry" id="static_android.scaler.availableRawMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010134 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010135 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010136 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010137 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010138 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010139 <span class="entry_type_container">x</span>
10140
10141 <span class="entry_type_array">
10142 n
10143 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010144 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010145
10146
10147 </td> <!-- entry_type -->
10148
10149 <td class="entry_description">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010150 <p>For each available raw output size (defined in
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010151<a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a>),<wbr/> this property lists the minimum
10152supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010153 </td>
10154
10155 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010156 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010157 </td>
10158
10159 <td class="entry_range">
10160 </td>
10161
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010162 <td class="entry_tags">
10163 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010164 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010165 </ul>
10166 </td>
10167
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010168 </tr>
10169 <tr class="entries_header">
10170 <th class="th_details" colspan="5">Details</th>
10171 </tr>
10172 <tr class="entry_cont">
10173 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010174 <p>Should correspond to the frame duration when only the raw stream is
10175active.<wbr/></p>
10176<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010177frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -080010178durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010179 </td>
10180 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010181
10182
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010183 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10184 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010185
10186
10187 <tr class="entry" id="static_android.scaler.availableRawSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010188 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010189 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010190 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010191 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010192 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010193 <span class="entry_type_container">x</span>
10194
10195 <span class="entry_type_array">
10196 n x 2
10197 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010198 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010199
10200
10201 </td> <!-- entry_type -->
10202
10203 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010204 <p>The resolutions available for use with raw
10205sensor output streams,<wbr/> listed as width,<wbr/>
10206height</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010207 </td>
10208
10209 <td class="entry_units">
10210 </td>
10211
10212 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010213 <p>Must include: - sensor maximum resolution</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010214 </td>
10215
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010216 <td class="entry_tags">
10217 </td>
10218
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010219 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010220
10221
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010222 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10223 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010224
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010225
10226
10227 <!-- end of kind -->
10228 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010229 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010230
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010231 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010232 <tr>
10233 <th class="th_name">Property Name</th>
10234 <th class="th_type">Type</th>
10235 <th class="th_description">Description</th>
10236 <th class="th_units">Units</th>
10237 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010238 <th class="th_tags">Tags</th>
10239 </tr>
10240 </thead>
10241
10242 <tbody>
10243
10244
10245
10246
10247
10248
10249
10250
10251
10252
10253 <tr class="entry" id="dynamic_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010254 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010255 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010256 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010257 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010258 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010259 <span class="entry_type_container">x</span>
10260
10261 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -070010262 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010263 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010264 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010265
10266
10267 </td> <!-- entry_type -->
10268
10269 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010270 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
10271<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
10272(width,<wbr/> height).<wbr/> The region of the sensor that is used for
10273output.<wbr/> Each stream must use this rectangle to produce its
10274output,<wbr/> cropping to a smaller region if necessary to
10275maintain the stream's aspect ratio.<wbr/></p>
10276<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010277 </td>
10278
10279 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010280 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
10281 in pixels; (0,<wbr/>0) is top-left corner of
10282 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010283 </td>
10284
10285 <td class="entry_range">
10286 </td>
10287
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010288 <td class="entry_tags">
10289 <ul class="entry_tags">
10290 <li><a href="#tag_BC">BC</a></li>
10291 </ul>
10292 </td>
10293
10294 </tr>
10295 <tr class="entries_header">
10296 <th class="th_details" colspan="5">Details</th>
10297 </tr>
10298 <tr class="entry_cont">
10299 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010300 <p>Any additional per-stream cropping must be done to
10301maximize the final pixel area of the stream.<wbr/></p>
10302<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
10303ratio,<wbr/> then 4:3 streams should use the exact crop
10304region.<wbr/> 16:9 streams should further crop vertically
10305(letterbox).<wbr/></p>
10306<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
10307outputs should crop horizontally (pillarbox),<wbr/> and 16:9
10308streams should match exactly.<wbr/> These additional crops must
10309be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010310<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -080010311times,<wbr/> no matter what the relative aspect ratios of the
10312crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010313corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -080010314larger than active pixel array.<wbr/> Width and height may be
10315rounded to nearest larger supportable width,<wbr/> especially
10316for raw output,<wbr/> where only a few fixed scales may be
10317possible.<wbr/> The width and height of the crop region cannot
10318be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
10319android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
10320activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
10321respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010322 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010323 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010324
10325
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010326 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10327 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010328
10329
10330
10331 <!-- end of kind -->
10332 </tbody>
10333
10334 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010335 <tr><td colspan="6" id="section_sensor" class="section">sensor</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010336
10337
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010338 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010339
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010340 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010341 <tr>
10342 <th class="th_name">Property Name</th>
10343 <th class="th_type">Type</th>
10344 <th class="th_description">Description</th>
10345 <th class="th_units">Units</th>
10346 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010347 <th class="th_tags">Tags</th>
10348 </tr>
10349 </thead>
10350
10351 <tbody>
10352
10353
10354
10355
10356
10357
10358
10359
10360
10361
10362 <tr class="entry" id="controls_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010363 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010364 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010365 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010366 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010367 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010368
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010369 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010370
10371
10372 </td> <!-- entry_type -->
10373
10374 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010375 <p>Duration each pixel is exposed to
10376light.<wbr/></p>
10377<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
10378duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010379 </td>
10380
10381 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010382 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010383 </td>
10384
10385 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010386 <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 -080010387 </td>
10388
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010389 <td class="entry_tags">
10390 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010391 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010392 </ul>
10393 </td>
10394
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010395 </tr>
10396 <tr class="entries_header">
10397 <th class="th_details" colspan="5">Details</th>
10398 </tr>
10399 <tr class="entry_cont">
10400 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010401 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010402 </td>
10403 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010404
10405
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010406 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10407 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010408
10409
10410 <tr class="entry" id="controls_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010411 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010412 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010413 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010414 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010415 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010416
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010417 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010418
10419
10420 </td> <!-- entry_type -->
10421
10422 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010423 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010424start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010425 </td>
10426
10427 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010428 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010429 </td>
10430
10431 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010432 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
10433android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
10434is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010435 </td>
10436
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010437 <td class="entry_tags">
10438 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010439 <li><a href="#tag_V1">V1</a></li>
10440 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010441 </ul>
10442 </td>
10443
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010444 </tr>
10445 <tr class="entries_header">
10446 <th class="th_details" colspan="5">Details</th>
10447 </tr>
10448 <tr class="entry_cont">
10449 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010450 <p>The maximum frame rate that can be supported by a camera subsystem is
10451a function of many factors:</p>
10452<ul>
10453<li>Requested resolutions of output image streams</li>
10454<li>Availability of binning /<wbr/> skipping modes on the imager</li>
10455<li>The bandwidth of the imager interface</li>
10456<li>The bandwidth of the various ISP processing blocks</li>
10457</ul>
10458<p>Since these factors can vary greatly between different ISPs and
10459sensors,<wbr/> the camera abstraction tries to represent the bandwidth
10460restrictions with as simple a model as possible.<wbr/></p>
10461<p>The model presented has the following characteristics:</p>
10462<ul>
10463<li>The image sensor is always configured to output the smallest
10464resolution possible given the application's requested output stream
10465sizes.<wbr/> The smallest resolution is defined as being at least as large
10466as the largest requested output stream size; the camera pipeline must
10467never digitally upsample sensor data when the crop region covers the
10468whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
10469resolutions are configured,<wbr/> the sensor can provide a higher frame
10470rate.<wbr/></li>
10471<li>Since any request may use any or all the currently configured
10472output streams,<wbr/> the sensor and ISP must be configured to support
10473scaling a single capture to all the streams at the same time.<wbr/> This
10474means the camera pipeline must be ready to produce the largest
10475requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
10476frame rate of a given configured stream set is governed only by the
10477largest requested stream resolution.<wbr/></li>
10478<li>Using more than one output stream in a request does not affect the
10479frame duration.<wbr/></li>
10480<li>JPEG streams act like processed YUV streams in requests for which
10481they are not included; in requests in which they are directly
10482referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
10483JPEG stream requires the underlying YUV data to always be ready for
10484use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
10485frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
10486<li>The JPEG processor can run concurrently to the rest of the camera
10487pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
10488</ul>
10489<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
10490is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
10491These are used to determine the maximum frame rate /<wbr/> minimum frame
10492duration that is possible for a given stream configuration.<wbr/></p>
10493<p>Specifically,<wbr/> the application can use the following rules to
10494determine the minimum frame duration it can request from the HAL
10495device:</p>
10496<ol>
10497<li>Given the application's currently configured set of output
10498streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
10499<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
10500<code>SP</code>.<wbr/></li>
10501<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
10502count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
10503<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
10504<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
10505no exact match for <code>RP == RJ</code> (in particular there isn't an available
10506processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
10507to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
10508there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
10509the processed resolution closest to <code>RJ</code>.<wbr/></li>
10510<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
10511no exact match for <code>RR == RP</code> (in particular there isn't an available
10512raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
10513or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
10514there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
10515the raw resolution closest to <code>RP</code>.<wbr/></li>
10516<li>Look up the matching minimum frame durations in the property lists
10517<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
10518<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
10519<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
10520minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
10521<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
10522supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
10523<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
10524supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
10525<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
10526the application,<wbr/> then the HAL will have to delay JPEG-using requests
10527whenever the JPEG encoder is still busy processing an older capture.<wbr/>
10528This will happen whenever a JPEG-using request starts capture less
10529than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
10530supported frame duration will vary between the values calculated in
10531#6 and #7.<wbr/></li>
10532</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010533 </td>
10534 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010535
10536
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010537 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10538 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010539
10540
10541 <tr class="entry" id="controls_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010542 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010543 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010544 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010545 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010546 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010547
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010548 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010549
10550
10551 </td> <!-- entry_type -->
10552
10553 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010554 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010555implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080010556below 'maximum analog sensitivity'.<wbr/></p>
10557<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
10558gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010559 </td>
10560
10561 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010562 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010563 </td>
10564
10565 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010566 <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 -080010567 </td>
10568
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010569 <td class="entry_tags">
10570 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010571 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010572 </ul>
10573 </td>
10574
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010575 </tr>
10576 <tr class="entries_header">
10577 <th class="th_details" colspan="5">Details</th>
10578 </tr>
10579 <tr class="entry_cont">
10580 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010581 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010582 </td>
10583 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010584
10585
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010586 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10587 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010588
Igor Murashkina46e02f2014-01-09 17:43:38 -080010589
10590 <tr class="entry" id="controls_android.sensor.testPatternData">
10591 <td class="entry_name" rowspan="5">
10592 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
10593 </td>
10594 <td class="entry_type">
10595 <span class="entry_type_name">int32</span>
10596 <span class="entry_type_container">x</span>
10597
10598 <span class="entry_type_array">
10599 4
10600 </span>
10601 <span class="entry_type_visibility"> [public]</span>
10602
10603
10604 </td> <!-- entry_type -->
10605
10606 <td class="entry_description">
10607 <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
10608when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
10609 </td>
10610
10611 <td class="entry_units">
10612 </td>
10613
10614 <td class="entry_range">
10615 <p>Optional.<wbr/>
10616Must be supported if <a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a> contains
10617SOLID_<wbr/>COLOR.<wbr/></p>
10618 </td>
10619
10620 <td class="entry_tags">
10621 </td>
10622
10623 </tr>
10624 <tr class="entries_header">
10625 <th class="th_details" colspan="5">Details</th>
10626 </tr>
10627 <tr class="entry_cont">
10628 <td class="entry_details" colspan="5">
10629 <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
10630The camera device then uses the most significant X bits
10631that correspond to how many bits are in its Bayer raw sensor
10632output.<wbr/></p>
10633<p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
1063410 most significant bits from each color channel.<wbr/></p>
10635 </td>
10636 </tr>
10637
10638 <tr class="entries_header">
10639 <th class="th_details" colspan="5">HAL Implementation Details</th>
10640 </tr>
10641 <tr class="entry_cont">
10642 <td class="entry_details" colspan="5">
10643
10644 </td>
10645 </tr>
10646
10647 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10648 <!-- end of entry -->
10649
10650
10651 <tr class="entry" id="controls_android.sensor.testPatternMode">
10652 <td class="entry_name" rowspan="5">
10653 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
10654 </td>
10655 <td class="entry_type">
10656 <span class="entry_type_name entry_type_name_enum">int32</span>
10657
10658 <span class="entry_type_visibility"> [public]</span>
10659
10660 <ul class="entry_type_enum">
10661 <li>
10662 <span class="entry_type_enum_name">OFF</span>
10663 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
10664device returns captures from the image sensor.<wbr/></p></span>
10665 </li>
10666 <li>
10667 <span class="entry_type_enum_name">SOLID_COLOR</span>
10668 <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
10669respective color channel provided in
10670<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
10671<p>For example:</p>
10672<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10673</code></pre>
10674<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
10675<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10676</code></pre>
10677<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
10678are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
10679 </li>
10680 <li>
10681 <span class="entry_type_enum_name">COLOR_BARS</span>
10682 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
10683<p>The vertical bars (left-to-right) are as follows:</p>
10684<ul>
10685<li>100% white</li>
10686<li>yellow</li>
10687<li>cyan</li>
10688<li>green</li>
10689<li>magenta</li>
10690<li>red</li>
10691<li>blue</li>
10692<li>black</li>
10693</ul>
10694<p>In general the image would look like the following:</p>
10695<pre><code>W Y C G M R B K
10696W Y C G M R B K
10697W Y C G M R B K
10698W Y C G M R B K
10699W Y C G M R B K
10700.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10701.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10702.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10703
10704(B = Blue,<wbr/> K = Black)
10705</code></pre>
10706<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
10707When this is not possible,<wbr/> the bar size should be rounded
10708down to the nearest integer and the pattern can repeat
10709on the right side.<wbr/></p>
10710<p>Each bar's height must always take up the full sensor
10711pixel array height.<wbr/></p>
10712<p>Each pixel in this test pattern must be set to either
107130% intensity or 100% intensity.<wbr/></p></span>
10714 </li>
10715 <li>
10716 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
10717 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
10718each bar should start at its specified color at the top,<wbr/>
10719and fade to gray at the bottom.<wbr/></p>
10720<p>Furthermore each bar is further subdivided into a left and
10721right half.<wbr/> The left half should have a smooth gradient,<wbr/>
10722and the right half should have a quantized gradient.<wbr/></p>
10723<p>In particular,<wbr/> the right half's should consist of blocks of the
10724same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
10725<p>The least significant bits in the quantized gradient should
10726be copied from the most significant bits of the smooth gradient.<wbr/></p>
10727<p>The height of each bar should always be a multiple of 128.<wbr/>
10728When this is not the case,<wbr/> the pattern should repeat at the bottom
10729of the image.<wbr/></p></span>
10730 </li>
10731 <li>
10732 <span class="entry_type_enum_name">PN9</span>
10733 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
10734generated from a PN9 512-bit sequence (typically implemented
10735in hardware with a linear feedback shift register).<wbr/></p>
10736<p>The generator should be reset at the beginning of each frame,<wbr/>
10737and thus each subsequent raw frame with this test pattern should
10738be exactly the same as the last.<wbr/></p></span>
10739 </li>
10740 <li>
10741 <span class="entry_type_enum_name">CUSTOM1</span>
10742 <span class="entry_type_enum_value">256</span>
10743 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
10744available only on this camera device are at least this numeric
10745value.<wbr/></p>
10746<p>All of the custom test patterns will be static
10747(that is the raw image must not vary from frame to frame).<wbr/></p></span>
10748 </li>
10749 </ul>
10750
10751 </td> <!-- entry_type -->
10752
10753 <td class="entry_description">
10754 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
10755doing a real exposure from the camera.<wbr/></p>
10756 </td>
10757
10758 <td class="entry_units">
10759 </td>
10760
10761 <td class="entry_range">
10762 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
10763<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
10764 </td>
10765
10766 <td class="entry_tags">
10767 </td>
10768
10769 </tr>
10770 <tr class="entries_header">
10771 <th class="th_details" colspan="5">Details</th>
10772 </tr>
10773 <tr class="entry_cont">
10774 <td class="entry_details" colspan="5">
10775 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
10776by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
10777work as normal.<wbr/></p>
10778<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
10779occur (and that the test pattern remain unmodified,<wbr/> since the flash
10780would not actually affect it).<wbr/></p>
10781 </td>
10782 </tr>
10783
10784 <tr class="entries_header">
10785 <th class="th_details" colspan="5">HAL Implementation Details</th>
10786 </tr>
10787 <tr class="entry_cont">
10788 <td class="entry_details" colspan="5">
10789 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
10790<p>The HAL may choose to substitute test patterns from the sensor
10791with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
10792indistinguishable to the ISP whether the data came from the
10793sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
10794 </td>
10795 </tr>
10796
10797 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10798 <!-- end of entry -->
10799
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010800
10801
10802 <!-- end of kind -->
10803 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010804 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010805
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010806 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010807 <tr>
10808 <th class="th_name">Property Name</th>
10809 <th class="th_type">Type</th>
10810 <th class="th_description">Description</th>
10811 <th class="th_units">Units</th>
10812 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010813 <th class="th_tags">Tags</th>
10814 </tr>
10815 </thead>
10816
10817 <tbody>
10818
10819
10820
10821
10822
10823
10824
10825
10826
10827
10828
10829
10830 <tr class="entry" id="static_android.sensor.info.activeArraySize">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010831 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010832 android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010833 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010834 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010835 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010836 <span class="entry_type_container">x</span>
10837
10838 <span class="entry_type_array">
10839 4
10840 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010841 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010842 <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010843
10844
10845 </td> <!-- entry_type -->
10846
10847 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010848 <p>Area of raw data which corresponds to only
Zhijun Hebdc94c42014-01-21 18:28:30 -080010849active pixels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010850 </td>
10851
10852 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010853 </td>
10854
10855 <td class="entry_range">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010856 <p>This array contains <code>(xmin,<wbr/> ymin,<wbr/> width,<wbr/> height)</code>.<wbr/> The <code>(xmin,<wbr/> ymin)</code> must be
10857&gt;= <code>(0,<wbr/>0)</code>.<wbr/> The <code>(width,<wbr/> height)</code> must be &lt;=
10858<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 -080010859 </td>
10860
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010861 <td class="entry_tags">
10862 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010863 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010864 </ul>
10865 </td>
10866
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010867 </tr>
Zhijun Hebdc94c42014-01-21 18:28:30 -080010868 <tr class="entries_header">
10869 <th class="th_details" colspan="5">Details</th>
10870 </tr>
10871 <tr class="entry_cont">
10872 <td class="entry_details" colspan="5">
10873 <p>It is smaller or equal to
10874sensor full pixel array,<wbr/> which could include the black calibration pixels.<wbr/></p>
10875 </td>
10876 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010877
10878
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010879 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10880 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010881
10882
Zhijun He69fc0ea2013-07-17 09:42:58 -070010883 <tr class="entry" id="static_android.sensor.info.sensitivityRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010884 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010885 android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010886 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010887 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010888 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010889 <span class="entry_type_container">x</span>
10890
10891 <span class="entry_type_array">
Zhijun He69fc0ea2013-07-17 09:42:58 -070010892 2
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010893 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010894 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010895 <div class="entry_type_notes">Range of supported sensitivities</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010896
10897
10898 </td> <!-- entry_type -->
10899
10900 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010901 <p>Range of valid sensitivities</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010902 </td>
10903
10904 <td class="entry_units">
10905 </td>
10906
10907 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010908 <p>Min &lt;= 100,<wbr/> Max &gt;= 1600</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010909 </td>
10910
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010911 <td class="entry_tags">
10912 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010913 <li><a href="#tag_BC">BC</a></li>
10914 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010915 </ul>
10916 </td>
10917
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010918 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010919
10920
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010921 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10922 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010923
10924
10925 <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010926 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010927 android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010928 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010929 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010930 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010931
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010932 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010933
10934 <ul class="entry_type_enum">
10935 <li>
10936 <span class="entry_type_enum_name">RGGB</span>
10937 </li>
10938 <li>
10939 <span class="entry_type_enum_name">GRBG</span>
10940 </li>
10941 <li>
10942 <span class="entry_type_enum_name">GBRG</span>
10943 </li>
10944 <li>
10945 <span class="entry_type_enum_name">BGGR</span>
10946 </li>
10947 <li>
10948 <span class="entry_type_enum_name">RGB</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080010949 <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
10950values for each pixel,<wbr/> instead of just 1 16-bit value
10951per pixel.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010952 </li>
10953 </ul>
10954
10955 </td> <!-- entry_type -->
10956
10957 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010958 <p>Arrangement of color filters on sensor;
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010959represents the colors in the top-left 2x2 section of
Igor Murashkin0b080452013-12-27 15:30:25 -080010960the sensor,<wbr/> in reading order</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010961 </td>
10962
10963 <td class="entry_units">
10964 </td>
10965
10966 <td class="entry_range">
10967 </td>
10968
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010969 <td class="entry_tags">
10970 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010971 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010972 </ul>
10973 </td>
10974
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010975 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010976
10977
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010978 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10979 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010980
10981
10982 <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
Igor Murashkin061c6002014-01-27 16:00:26 -080010983 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010984 android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010985 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010986 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010987 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010988 <span class="entry_type_container">x</span>
10989
10990 <span class="entry_type_array">
10991 2
10992 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010993 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010994 <div class="entry_type_notes">nanoseconds</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010995
10996
10997 </td> <!-- entry_type -->
10998
10999 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011000 <p>Range of valid exposure
Igor Murashkin061c6002014-01-27 16:00:26 -080011001times 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 -080011002 </td>
11003
11004 <td class="entry_units">
11005 </td>
11006
11007 <td class="entry_range">
Igor Murashkin061c6002014-01-27 16:00:26 -080011008 <p>Min &lt;= 100e3 (100 us),<wbr/> Max &gt;= 1e9 (1
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011009sec)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011010 </td>
11011
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011012 <td class="entry_tags">
11013 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011014 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011015 </ul>
11016 </td>
11017
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011018 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011019
Igor Murashkin061c6002014-01-27 16:00:26 -080011020 <tr class="entries_header">
11021 <th class="th_details" colspan="5">HAL Implementation Details</th>
11022 </tr>
11023 <tr class="entry_cont">
11024 <td class="entry_details" colspan="5">
11025 <p>The maximum of the range must be at least
110261 second.<wbr/> It should be at least 30 seconds.<wbr/></p>
11027 </td>
11028 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011029
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011030 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11031 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011032
11033
11034 <tr class="entry" id="static_android.sensor.info.maxFrameDuration">
Igor Murashkin061c6002014-01-27 16:00:26 -080011035 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011036 android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011037 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011038 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011039 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011040
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011041 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011042
11043
11044 </td> <!-- entry_type -->
11045
11046 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011047 <p>Maximum possible frame duration (minimum frame
Igor Murashkin061c6002014-01-27 16:00:26 -080011048rate).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011049 </td>
11050
11051 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011052 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011053 </td>
11054
11055 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011056 <p>&gt;= 30e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011057 </td>
11058
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011059 <td class="entry_tags">
11060 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011061 <li><a href="#tag_BC">BC</a></li>
11062 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011063 </ul>
11064 </td>
11065
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011066 </tr>
11067 <tr class="entries_header">
11068 <th class="th_details" colspan="5">Details</th>
11069 </tr>
11070 <tr class="entry_cont">
11071 <td class="entry_details" colspan="5">
Igor Murashkin061c6002014-01-27 16:00:26 -080011072 <p>The largest possible android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
11073that will be accepted by the camera device.<wbr/> Attempting to use
11074frame durations beyond the maximum will result in the frame duration
11075being clipped to the maximum.<wbr/> See that control
11076for a full definition of frame durations.<wbr/></p>
11077<p>Refer to
11078<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>,<wbr/>
11079<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/> and
11080<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a> for the minimum
11081frame duration values.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011082 </td>
11083 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011084
Igor Murashkin061c6002014-01-27 16:00:26 -080011085 <tr class="entries_header">
11086 <th class="th_details" colspan="5">HAL Implementation Details</th>
11087 </tr>
11088 <tr class="entry_cont">
11089 <td class="entry_details" colspan="5">
11090 <p>This value must be at least 1 second.<wbr/> It should be at least 30
11091seconds (30e9 ns).<wbr/></p>
11092<p>android.<wbr/>sensor.<wbr/>max<wbr/>Frame<wbr/>Duration must be greater or equal to the
11093android.<wbr/>sensor.<wbr/>exposure<wbr/>Time<wbr/>Range max value (since exposure time
11094overrides frame duration).<wbr/></p>
11095 </td>
11096 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011097
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011098 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11099 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011100
11101
11102 <tr class="entry" id="static_android.sensor.info.physicalSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011103 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011104 android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011105 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011106 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011107 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011108 <span class="entry_type_container">x</span>
11109
11110 <span class="entry_type_array">
11111 2
11112 </span>
Timothy Knightec817d52013-08-16 16:15:29 -070011113 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011114 <div class="entry_type_notes">width x height in millimeters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011115
11116
11117 </td> <!-- entry_type -->
11118
11119 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011120 <p>The physical dimensions of the full pixel
11121array</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011122 </td>
11123
11124 <td class="entry_units">
11125 </td>
11126
11127 <td class="entry_range">
11128 </td>
11129
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011130 <td class="entry_tags">
11131 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011132 <li><a href="#tag_V1">V1</a></li>
11133 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011134 </ul>
11135 </td>
11136
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011137 </tr>
11138 <tr class="entries_header">
11139 <th class="th_details" colspan="5">Details</th>
11140 </tr>
11141 <tr class="entry_cont">
11142 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011143 <p>Needed for FOV calculation for old API</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011144 </td>
11145 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011146
11147
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011148 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11149 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011150
11151
11152 <tr class="entry" id="static_android.sensor.info.pixelArraySize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011153 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011154 android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011155 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011156 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011157 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011158 <span class="entry_type_container">x</span>
11159
11160 <span class="entry_type_array">
11161 2
11162 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070011163 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011164
11165
11166 </td> <!-- entry_type -->
11167
11168 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011169 <p>Dimensions of full pixel array,<wbr/> possibly
Zhijun Hebdc94c42014-01-21 18:28:30 -080011170including black calibration pixels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011171 </td>
11172
11173 <td class="entry_units">
11174 </td>
11175
11176 <td class="entry_range">
11177 </td>
11178
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011179 <td class="entry_tags">
11180 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011181 <li><a href="#tag_DNG">DNG</a></li>
11182 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011183 </ul>
11184 </td>
11185
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011186 </tr>
11187 <tr class="entries_header">
11188 <th class="th_details" colspan="5">Details</th>
11189 </tr>
11190 <tr class="entry_cont">
11191 <td class="entry_details" colspan="5">
Zhijun Hebdc94c42014-01-21 18:28:30 -080011192 <p>The maximum output resolution for raw format in
11193<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 -080011194 </td>
11195 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011196
11197
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011198 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11199 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011200
11201
11202 <tr class="entry" id="static_android.sensor.info.whiteLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011203 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011204 android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011205 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011206 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011207 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011208
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011209 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011210
11211
11212 </td> <!-- entry_type -->
11213
11214 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011215 <p>Maximum raw value output by
11216sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011217 </td>
11218
11219 <td class="entry_units">
11220 </td>
11221
11222 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011223 <p>&gt; 1024 (10-bit output)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011224 </td>
11225
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011226 <td class="entry_tags">
11227 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011228 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011229 </ul>
11230 </td>
11231
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011232 </tr>
11233 <tr class="entries_header">
11234 <th class="th_details" colspan="5">Details</th>
11235 </tr>
11236 <tr class="entry_cont">
11237 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011238 <p>Defines sensor bit depth (10-14 bits is
11239expected)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011240 </td>
11241 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011242
11243
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011244 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11245 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011246
11247
11248
11249
11250
11251 <tr class="entry" id="static_android.sensor.baseGainFactor">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011252 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011253 android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011254 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011255 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011256 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011257
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011258 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011259
11260
11261 </td> <!-- entry_type -->
11262
11263 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011264 <p>Gain factor from electrons to raw units when
11265ISO=100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011266 </td>
11267
11268 <td class="entry_units">
11269 </td>
11270
11271 <td class="entry_range">
11272 </td>
11273
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011274 <td class="entry_tags">
11275 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011276 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011277 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011278 </ul>
11279 </td>
11280
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011281 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011282
11283
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011284 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11285 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011286
11287
11288 <tr class="entry" id="static_android.sensor.blackLevelPattern">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011289 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011290 android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011291 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011292 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011293 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011294 <span class="entry_type_container">x</span>
11295
11296 <span class="entry_type_array">
11297 4
11298 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011299 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011300 <div class="entry_type_notes">2x2 raw count block</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011301
11302
11303 </td> <!-- entry_type -->
11304
11305 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011306 <p>A fixed black level offset for each of the
11307Bayer mosaic channels</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011308 </td>
11309
11310 <td class="entry_units">
11311 </td>
11312
11313 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011314 <p>&gt;= 0 each</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011315 </td>
11316
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011317 <td class="entry_tags">
11318 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011319 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011320 </ul>
11321 </td>
11322
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011323 </tr>
11324 <tr class="entries_header">
11325 <th class="th_details" colspan="5">Details</th>
11326 </tr>
11327 <tr class="entry_cont">
11328 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011329 <p>As per DNG BlackLevelRepeatDim /<wbr/> BlackLevel
11330tags</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011331 </td>
11332 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011333
11334
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011335 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11336 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011337
11338
11339 <tr class="entry" id="static_android.sensor.calibrationTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011340 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011341 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011342 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011343 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011344 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011345 <span class="entry_type_container">x</span>
11346
11347 <span class="entry_type_array">
11348 9
11349 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011350 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011351 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011352
11353
11354 </td> <!-- entry_type -->
11355
11356 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011357 <p>Per-device calibration on top of color space
11358transform 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011359 </td>
11360
11361 <td class="entry_units">
11362 </td>
11363
11364 <td class="entry_range">
11365 </td>
11366
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011367 <td class="entry_tags">
11368 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011369 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011370 </ul>
11371 </td>
11372
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011373 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011374
11375
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011376 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11377 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011378
11379
11380 <tr class="entry" id="static_android.sensor.calibrationTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011381 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011382 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011383 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011384 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011385 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011386 <span class="entry_type_container">x</span>
11387
11388 <span class="entry_type_array">
11389 9
11390 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011391 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011392 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011393
11394
11395 </td> <!-- entry_type -->
11396
11397 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011398 <p>Per-device calibration on top of color space
11399transform 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011400 </td>
11401
11402 <td class="entry_units">
11403 </td>
11404
11405 <td class="entry_range">
11406 </td>
11407
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011408 <td class="entry_tags">
11409 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011410 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011411 </ul>
11412 </td>
11413
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011414 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011415
11416
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011417 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11418 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011419
11420
11421 <tr class="entry" id="static_android.sensor.colorTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011422 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011423 android.<wbr/>sensor.<wbr/>color<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011424 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011425 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011426 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011427 <span class="entry_type_container">x</span>
11428
11429 <span class="entry_type_array">
11430 9
11431 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011432 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011433 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011434
11435
11436 </td> <!-- entry_type -->
11437
11438 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011439 <p>Linear mapping from XYZ (D50) color space to
11440reference linear sensor color,<wbr/> for first reference
11441illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011442 </td>
11443
11444 <td class="entry_units">
11445 </td>
11446
11447 <td class="entry_range">
11448 </td>
11449
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011450 <td class="entry_tags">
11451 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011452 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011453 </ul>
11454 </td>
11455
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011456 </tr>
11457 <tr class="entries_header">
11458 <th class="th_details" colspan="5">Details</th>
11459 </tr>
11460 <tr class="entry_cont">
11461 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011462 <p>Use as follows XYZ = inv(transform) * clip( (raw -
11463black level(raw) ) /<wbr/> ( white level - max black level) ).<wbr/>
11464At least in the simple case</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011465 </td>
11466 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011467
11468
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011469 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11470 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011471
11472
11473 <tr class="entry" id="static_android.sensor.colorTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011474 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011475 android.<wbr/>sensor.<wbr/>color<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011476 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011477 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011478 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011479 <span class="entry_type_container">x</span>
11480
11481 <span class="entry_type_array">
11482 9
11483 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011484 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011485 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011486
11487
11488 </td> <!-- entry_type -->
11489
11490 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011491 <p>Linear mapping from XYZ (D50) color space to
11492reference linear sensor color,<wbr/> for second reference
11493illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011494 </td>
11495
11496 <td class="entry_units">
11497 </td>
11498
11499 <td class="entry_range">
11500 </td>
11501
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011502 <td class="entry_tags">
11503 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011504 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011505 </ul>
11506 </td>
11507
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011508 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011509
11510
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011511 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11512 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011513
11514
11515 <tr class="entry" id="static_android.sensor.forwardMatrix1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011516 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011517 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011518 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011519 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011520 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011521 <span class="entry_type_container">x</span>
11522
11523 <span class="entry_type_array">
11524 9
11525 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011526 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011527 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011528
11529
11530 </td> <!-- entry_type -->
11531
11532 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011533 <p>Used by DNG for better WB
11534adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011535 </td>
11536
11537 <td class="entry_units">
11538 </td>
11539
11540 <td class="entry_range">
11541 </td>
11542
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011543 <td class="entry_tags">
11544 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011545 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011546 </ul>
11547 </td>
11548
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011549 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011550
11551
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011552 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11553 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011554
11555
11556 <tr class="entry" id="static_android.sensor.forwardMatrix2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011557 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011558 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011559 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011560 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011561 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011562 <span class="entry_type_container">x</span>
11563
11564 <span class="entry_type_array">
11565 9
11566 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011567 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011568 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011569
11570
11571 </td> <!-- entry_type -->
11572
11573 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011574 <p>Used by DNG for better WB
11575adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011576 </td>
11577
11578 <td class="entry_units">
11579 </td>
11580
11581 <td class="entry_range">
11582 </td>
11583
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011584 <td class="entry_tags">
11585 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011586 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011587 </ul>
11588 </td>
11589
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011590 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011591
11592
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011593 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11594 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011595
11596
11597 <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011598 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011599 android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011600 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011601 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011602 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011603
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011604 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011605
11606
11607 </td> <!-- entry_type -->
11608
11609 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011610 <p>Maximum sensitivity that is implemented
Zhijun Hebdc94c42014-01-21 18:28:30 -080011611purely through analog gain.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011612 </td>
11613
11614 <td class="entry_units">
11615 </td>
11616
11617 <td class="entry_range">
11618 </td>
11619
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011620 <td class="entry_tags">
11621 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011622 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011623 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011624 </ul>
11625 </td>
11626
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011627 </tr>
11628 <tr class="entries_header">
11629 <th class="th_details" colspan="5">Details</th>
11630 </tr>
11631 <tr class="entry_cont">
11632 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011633 <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 -080011634equal to this,<wbr/> all applied gain must be analog.<wbr/> For
Zhijun Hebdc94c42014-01-21 18:28:30 -080011635values above this,<wbr/> the gain applied can be a mix of analog and
11636digital.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011637 </td>
11638 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011639
11640
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011641 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11642 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011643
11644
11645 <tr class="entry" id="static_android.sensor.noiseModelCoefficients">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011646 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011647 android.<wbr/>sensor.<wbr/>noise<wbr/>Model<wbr/>Coefficients
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011648 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011649 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011650 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011651 <span class="entry_type_container">x</span>
11652
11653 <span class="entry_type_array">
11654 2
11655 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011656 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011657 <div class="entry_type_notes">float constants A,<wbr/> B for the noise variance model</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011658
11659
11660 </td> <!-- entry_type -->
11661
11662 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011663 <p>Estimation of sensor noise
11664characteristics</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011665 </td>
11666
11667 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011668 var(raw pixel value) = electrons * (baseGainFactor
11669 * iso/<wbr/>100)^2 + A * (baseGainFactor * iso/<wbr/>100)^2 +
11670 B
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011671 </td>
11672
11673 <td class="entry_range">
11674 </td>
11675
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011676 <td class="entry_tags">
11677 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011678 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011679 </ul>
11680 </td>
11681
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011682 </tr>
11683 <tr class="entries_header">
11684 <th class="th_details" colspan="5">Details</th>
11685 </tr>
11686 <tr class="entry_cont">
11687 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011688 <p>A represents sensor read noise before analog
11689amplification; B represents noise from A/<wbr/>D conversion and
11690other circuits after amplification.<wbr/> Both noise sources
11691are assumed to be gaussian,<wbr/> independent,<wbr/> and not to vary
11692across the sensor</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011693 </td>
11694 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011695
11696
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011697 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11698 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011699
11700
11701 <tr class="entry" id="static_android.sensor.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011702 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011703 android.<wbr/>sensor.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011704 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011705 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011706 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011707
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011708 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011709
11710
11711 </td> <!-- entry_type -->
11712
11713 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011714 <p>Clockwise angle through which the output
Igor Murashkin8aa2a112013-12-09 12:06:17 -080011715image needs to be rotated to be upright on the device
Igor Murashkin0b080452013-12-27 15:30:25 -080011716screen in its native orientation.<wbr/> Also defines the
11717direction of rolling shutter readout,<wbr/> which is from top
11718to bottom in the sensor's coordinate system</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011719 </td>
11720
11721 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011722 degrees clockwise rotation,<wbr/> only multiples of
11723 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011724 </td>
11725
11726 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011727 <p>0,<wbr/>90,<wbr/>180,<wbr/>270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011728 </td>
11729
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011730 <td class="entry_tags">
11731 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011732 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011733 </ul>
11734 </td>
11735
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011736 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011737
11738
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011739 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11740 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011741
11742
11743 <tr class="entry" id="static_android.sensor.referenceIlluminant1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011744 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011745 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011746 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011747 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011748 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011749
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011750 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011751
11752 <ul class="entry_type_enum">
11753 <li>
11754 <span class="entry_type_enum_name">DAYLIGHT</span>
11755 <span class="entry_type_enum_value">1</span>
11756 </li>
11757 <li>
11758 <span class="entry_type_enum_name">FLUORESCENT</span>
11759 <span class="entry_type_enum_value">2</span>
11760 </li>
11761 <li>
11762 <span class="entry_type_enum_name">TUNGSTEN</span>
11763 <span class="entry_type_enum_value">3</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011764 <span class="entry_type_enum_notes"><p>Incandescent light</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011765 </li>
11766 <li>
11767 <span class="entry_type_enum_name">FLASH</span>
11768 <span class="entry_type_enum_value">4</span>
11769 </li>
11770 <li>
11771 <span class="entry_type_enum_name">FINE_WEATHER</span>
11772 <span class="entry_type_enum_value">9</span>
11773 </li>
11774 <li>
11775 <span class="entry_type_enum_name">CLOUDY_WEATHER</span>
11776 <span class="entry_type_enum_value">10</span>
11777 </li>
11778 <li>
11779 <span class="entry_type_enum_name">SHADE</span>
11780 <span class="entry_type_enum_value">11</span>
11781 </li>
11782 <li>
11783 <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span>
11784 <span class="entry_type_enum_value">12</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011785 <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011786 </li>
11787 <li>
11788 <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span>
11789 <span class="entry_type_enum_value">13</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011790 <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011791 </li>
11792 <li>
11793 <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span>
11794 <span class="entry_type_enum_value">14</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011795 <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011796 </li>
11797 <li>
11798 <span class="entry_type_enum_name">WHITE_FLUORESCENT</span>
11799 <span class="entry_type_enum_value">15</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011800 <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011801 </li>
11802 <li>
11803 <span class="entry_type_enum_name">STANDARD_A</span>
11804 <span class="entry_type_enum_value">17</span>
11805 </li>
11806 <li>
11807 <span class="entry_type_enum_name">STANDARD_B</span>
11808 <span class="entry_type_enum_value">18</span>
11809 </li>
11810 <li>
11811 <span class="entry_type_enum_name">STANDARD_C</span>
11812 <span class="entry_type_enum_value">19</span>
11813 </li>
11814 <li>
11815 <span class="entry_type_enum_name">D55</span>
11816 <span class="entry_type_enum_value">20</span>
11817 </li>
11818 <li>
11819 <span class="entry_type_enum_name">D65</span>
11820 <span class="entry_type_enum_value">21</span>
11821 </li>
11822 <li>
11823 <span class="entry_type_enum_name">D75</span>
11824 <span class="entry_type_enum_value">22</span>
11825 </li>
11826 <li>
11827 <span class="entry_type_enum_name">D50</span>
11828 <span class="entry_type_enum_value">23</span>
11829 </li>
11830 <li>
11831 <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span>
11832 <span class="entry_type_enum_value">24</span>
11833 </li>
11834 </ul>
11835
11836 </td> <!-- entry_type -->
11837
11838 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011839 <p>Light source used to define transform
118401</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011841 </td>
11842
11843 <td class="entry_units">
11844 </td>
11845
11846 <td class="entry_range">
11847 </td>
11848
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011849 <td class="entry_tags">
11850 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011851 <li><a href="#tag_DNG">DNG</a></li>
11852 <li><a href="#tag_EXIF">EXIF</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011853 </ul>
11854 </td>
11855
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011856 </tr>
11857 <tr class="entries_header">
11858 <th class="th_details" colspan="5">Details</th>
11859 </tr>
11860 <tr class="entry_cont">
11861 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011862 <p>[EXIF LightSource tag] Must all these be
11863supported? Need CCT for each!</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011864 </td>
11865 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011866
11867
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011868 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11869 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011870
11871
11872 <tr class="entry" id="static_android.sensor.referenceIlluminant2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011873 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011874 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011875 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011876 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011877 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011878
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011879 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011880
11881
11882 </td> <!-- entry_type -->
11883
11884 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011885 <p>Light source used to define transform
118862</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011887 </td>
11888
11889 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011890 Same as illuminant 1
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011891 </td>
11892
11893 <td class="entry_range">
11894 </td>
11895
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011896 <td class="entry_tags">
11897 </td>
11898
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011899 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011900
11901
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011902 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11903 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011904
Igor Murashkina46e02f2014-01-09 17:43:38 -080011905
11906 <tr class="entry" id="static_android.sensor.availableTestPatternModes">
11907 <td class="entry_name" rowspan="1">
11908 android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes
11909 </td>
11910 <td class="entry_type">
11911 <span class="entry_type_name">byte</span>
11912
11913 <span class="entry_type_visibility"> [public]</span>
11914
11915
11916 </td> <!-- entry_type -->
11917
11918 <td class="entry_description">
11919 <p>Optional.<wbr/> Defaults to [OFF].<wbr/> Lists the supported test
11920pattern modes for android.<wbr/>test.<wbr/>pattern<wbr/>Mode.<wbr/></p>
11921 </td>
11922
11923 <td class="entry_units">
11924 </td>
11925
11926 <td class="entry_range">
11927 <p>Must include OFF.<wbr/> All custom modes must be &gt;= CUSTOM1</p>
11928 </td>
11929
11930 <td class="entry_tags">
11931 </td>
11932
11933 </tr>
11934
11935
11936 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11937 <!-- end of entry -->
11938
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011939
11940
11941 <!-- end of kind -->
11942 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011943 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011944
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011945 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011946 <tr>
11947 <th class="th_name">Property Name</th>
11948 <th class="th_type">Type</th>
11949 <th class="th_description">Description</th>
11950 <th class="th_units">Units</th>
11951 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011952 <th class="th_tags">Tags</th>
11953 </tr>
11954 </thead>
11955
11956 <tbody>
11957
11958
11959
11960
11961
11962
11963
11964
11965
11966
11967 <tr class="entry" id="dynamic_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011968 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011969 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011970 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011971 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011972 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011973
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011974 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011975
11976
11977 </td> <!-- entry_type -->
11978
11979 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011980 <p>Duration each pixel is exposed to
11981light.<wbr/></p>
11982<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
11983duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011984 </td>
11985
11986 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011987 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011988 </td>
11989
11990 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011991 <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 -080011992 </td>
11993
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011994 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011995 <ul class="entry_tags">
11996 <li><a href="#tag_V1">V1</a></li>
11997 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011998 </td>
11999
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012000 </tr>
12001 <tr class="entries_header">
12002 <th class="th_details" colspan="5">Details</th>
12003 </tr>
12004 <tr class="entry_cont">
12005 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012006 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012007 </td>
12008 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012009
12010
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012011 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12012 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012013
12014
12015 <tr class="entry" id="dynamic_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012016 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012017 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012018 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012019 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012020 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012021
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012022 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012023
12024
12025 </td> <!-- entry_type -->
12026
12027 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012028 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012029start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012030 </td>
12031
12032 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012033 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012034 </td>
12035
12036 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012037 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
12038android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
12039is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012040 </td>
12041
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012042 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012043 <ul class="entry_tags">
12044 <li><a href="#tag_V1">V1</a></li>
12045 <li><a href="#tag_BC">BC</a></li>
12046 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012047 </td>
12048
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012049 </tr>
12050 <tr class="entries_header">
12051 <th class="th_details" colspan="5">Details</th>
12052 </tr>
12053 <tr class="entry_cont">
12054 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012055 <p>The maximum frame rate that can be supported by a camera subsystem is
12056a function of many factors:</p>
12057<ul>
12058<li>Requested resolutions of output image streams</li>
12059<li>Availability of binning /<wbr/> skipping modes on the imager</li>
12060<li>The bandwidth of the imager interface</li>
12061<li>The bandwidth of the various ISP processing blocks</li>
12062</ul>
12063<p>Since these factors can vary greatly between different ISPs and
12064sensors,<wbr/> the camera abstraction tries to represent the bandwidth
12065restrictions with as simple a model as possible.<wbr/></p>
12066<p>The model presented has the following characteristics:</p>
12067<ul>
12068<li>The image sensor is always configured to output the smallest
12069resolution possible given the application's requested output stream
12070sizes.<wbr/> The smallest resolution is defined as being at least as large
12071as the largest requested output stream size; the camera pipeline must
12072never digitally upsample sensor data when the crop region covers the
12073whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
12074resolutions are configured,<wbr/> the sensor can provide a higher frame
12075rate.<wbr/></li>
12076<li>Since any request may use any or all the currently configured
12077output streams,<wbr/> the sensor and ISP must be configured to support
12078scaling a single capture to all the streams at the same time.<wbr/> This
12079means the camera pipeline must be ready to produce the largest
12080requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
12081frame rate of a given configured stream set is governed only by the
12082largest requested stream resolution.<wbr/></li>
12083<li>Using more than one output stream in a request does not affect the
12084frame duration.<wbr/></li>
12085<li>JPEG streams act like processed YUV streams in requests for which
12086they are not included; in requests in which they are directly
12087referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
12088JPEG stream requires the underlying YUV data to always be ready for
12089use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
12090frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
12091<li>The JPEG processor can run concurrently to the rest of the camera
12092pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
12093</ul>
12094<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
12095is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
12096These are used to determine the maximum frame rate /<wbr/> minimum frame
12097duration that is possible for a given stream configuration.<wbr/></p>
12098<p>Specifically,<wbr/> the application can use the following rules to
12099determine the minimum frame duration it can request from the HAL
12100device:</p>
12101<ol>
12102<li>Given the application's currently configured set of output
12103streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
12104<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
12105<code>SP</code>.<wbr/></li>
12106<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
12107count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
12108<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
12109<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
12110no exact match for <code>RP == RJ</code> (in particular there isn't an available
12111processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
12112to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
12113there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
12114the processed resolution closest to <code>RJ</code>.<wbr/></li>
12115<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
12116no exact match for <code>RR == RP</code> (in particular there isn't an available
12117raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
12118or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
12119there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
12120the raw resolution closest to <code>RP</code>.<wbr/></li>
12121<li>Look up the matching minimum frame durations in the property lists
12122<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
12123<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
12124<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
12125minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
12126<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
12127supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
12128<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
12129supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
12130<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
12131the application,<wbr/> then the HAL will have to delay JPEG-using requests
12132whenever the JPEG encoder is still busy processing an older capture.<wbr/>
12133This will happen whenever a JPEG-using request starts capture less
12134than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
12135supported frame duration will vary between the values calculated in
12136#6 and #7.<wbr/></li>
12137</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012138 </td>
12139 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012140
12141
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012142 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12143 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012144
12145
12146 <tr class="entry" id="dynamic_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012147 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012148 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012149 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012150 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012151 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012152
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012153 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012154
12155
12156 </td> <!-- entry_type -->
12157
12158 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012159 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012160implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080012161below 'maximum analog sensitivity'.<wbr/></p>
12162<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
12163gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012164 </td>
12165
12166 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012167 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012168 </td>
12169
12170 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012171 <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 -080012172 </td>
12173
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012174 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012175 <ul class="entry_tags">
12176 <li><a href="#tag_V1">V1</a></li>
12177 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012178 </td>
12179
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012180 </tr>
12181 <tr class="entries_header">
12182 <th class="th_details" colspan="5">Details</th>
12183 </tr>
12184 <tr class="entry_cont">
12185 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012186 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012187 </td>
12188 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012189
12190
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012191 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12192 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012193
12194
12195 <tr class="entry" id="dynamic_android.sensor.timestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012196 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012197 android.<wbr/>sensor.<wbr/>timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012198 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012199 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012200 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012201
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012202 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012203
12204
12205 </td> <!-- entry_type -->
12206
12207 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012208 <p>Time at start of exposure of first
12209row</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012210 </td>
12211
12212 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012213 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012214 </td>
12215
12216 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012217 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012218 </td>
12219
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012220 <td class="entry_tags">
12221 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012222 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012223 </ul>
12224 </td>
12225
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012226 </tr>
12227 <tr class="entries_header">
12228 <th class="th_details" colspan="5">Details</th>
12229 </tr>
12230 <tr class="entry_cont">
12231 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012232 <p>Monotonic,<wbr/> should be synced to other timestamps in
12233system</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012234 </td>
12235 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012236
12237
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012238 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12239 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012240
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012241
12242 <tr class="entry" id="dynamic_android.sensor.temperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012243 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012244 android.<wbr/>sensor.<wbr/>temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012245 </td>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012246 <td class="entry_type">
12247 <span class="entry_type_name">float</span>
12248
12249 <span class="entry_type_visibility"> [public]</span>
12250
12251
12252 </td> <!-- entry_type -->
12253
12254 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012255 <p>The temperature of the sensor,<wbr/> sampled at the time
12256exposure began for this frame.<wbr/></p>
12257<p>The thermal diode being queried should be inside the sensor PCB,<wbr/> or
12258somewhere close to it.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012259 </td>
12260
12261 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012262 celsius
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012263 </td>
12264
12265 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012266 <p>Optional.<wbr/> This value is missing if no temperature is available.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012267 </td>
12268
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012269 <td class="entry_tags">
Alex Rayef40ad62013-10-01 17:52:33 -070012270 <ul class="entry_tags">
12271 <li><a href="#tag_FULL">FULL</a></li>
12272 </ul>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012273 </td>
12274
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012275 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012276
12277
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012278 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12279 <!-- end of entry -->
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012280
Igor Murashkina46e02f2014-01-09 17:43:38 -080012281
12282 <tr class="entry" id="dynamic_android.sensor.testPatternMode">
12283 <td class="entry_name" rowspan="5">
12284 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
12285 </td>
12286 <td class="entry_type">
12287 <span class="entry_type_name entry_type_name_enum">int32</span>
12288
12289 <span class="entry_type_visibility"> [public]</span>
12290
12291 <ul class="entry_type_enum">
12292 <li>
12293 <span class="entry_type_enum_name">OFF</span>
12294 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
12295device returns captures from the image sensor.<wbr/></p></span>
12296 </li>
12297 <li>
12298 <span class="entry_type_enum_name">SOLID_COLOR</span>
12299 <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
12300respective color channel provided in
12301<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
12302<p>For example:</p>
12303<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12304</code></pre>
12305<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
12306<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12307</code></pre>
12308<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
12309are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
12310 </li>
12311 <li>
12312 <span class="entry_type_enum_name">COLOR_BARS</span>
12313 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
12314<p>The vertical bars (left-to-right) are as follows:</p>
12315<ul>
12316<li>100% white</li>
12317<li>yellow</li>
12318<li>cyan</li>
12319<li>green</li>
12320<li>magenta</li>
12321<li>red</li>
12322<li>blue</li>
12323<li>black</li>
12324</ul>
12325<p>In general the image would look like the following:</p>
12326<pre><code>W Y C G M R B K
12327W Y C G M R B K
12328W Y C G M R B K
12329W Y C G M R B K
12330W Y C G M R B K
12331.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12332.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12333.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12334
12335(B = Blue,<wbr/> K = Black)
12336</code></pre>
12337<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
12338When this is not possible,<wbr/> the bar size should be rounded
12339down to the nearest integer and the pattern can repeat
12340on the right side.<wbr/></p>
12341<p>Each bar's height must always take up the full sensor
12342pixel array height.<wbr/></p>
12343<p>Each pixel in this test pattern must be set to either
123440% intensity or 100% intensity.<wbr/></p></span>
12345 </li>
12346 <li>
12347 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
12348 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
12349each bar should start at its specified color at the top,<wbr/>
12350and fade to gray at the bottom.<wbr/></p>
12351<p>Furthermore each bar is further subdivided into a left and
12352right half.<wbr/> The left half should have a smooth gradient,<wbr/>
12353and the right half should have a quantized gradient.<wbr/></p>
12354<p>In particular,<wbr/> the right half's should consist of blocks of the
12355same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
12356<p>The least significant bits in the quantized gradient should
12357be copied from the most significant bits of the smooth gradient.<wbr/></p>
12358<p>The height of each bar should always be a multiple of 128.<wbr/>
12359When this is not the case,<wbr/> the pattern should repeat at the bottom
12360of the image.<wbr/></p></span>
12361 </li>
12362 <li>
12363 <span class="entry_type_enum_name">PN9</span>
12364 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
12365generated from a PN9 512-bit sequence (typically implemented
12366in hardware with a linear feedback shift register).<wbr/></p>
12367<p>The generator should be reset at the beginning of each frame,<wbr/>
12368and thus each subsequent raw frame with this test pattern should
12369be exactly the same as the last.<wbr/></p></span>
12370 </li>
12371 <li>
12372 <span class="entry_type_enum_name">CUSTOM1</span>
12373 <span class="entry_type_enum_value">256</span>
12374 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
12375available only on this camera device are at least this numeric
12376value.<wbr/></p>
12377<p>All of the custom test patterns will be static
12378(that is the raw image must not vary from frame to frame).<wbr/></p></span>
12379 </li>
12380 </ul>
12381
12382 </td> <!-- entry_type -->
12383
12384 <td class="entry_description">
12385 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
12386doing a real exposure from the camera.<wbr/></p>
12387 </td>
12388
12389 <td class="entry_units">
12390 </td>
12391
12392 <td class="entry_range">
12393 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
12394<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
12395 </td>
12396
12397 <td class="entry_tags">
12398 </td>
12399
12400 </tr>
12401 <tr class="entries_header">
12402 <th class="th_details" colspan="5">Details</th>
12403 </tr>
12404 <tr class="entry_cont">
12405 <td class="entry_details" colspan="5">
12406 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
12407by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
12408work as normal.<wbr/></p>
12409<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
12410occur (and that the test pattern remain unmodified,<wbr/> since the flash
12411would not actually affect it).<wbr/></p>
12412 </td>
12413 </tr>
12414
12415 <tr class="entries_header">
12416 <th class="th_details" colspan="5">HAL Implementation Details</th>
12417 </tr>
12418 <tr class="entry_cont">
12419 <td class="entry_details" colspan="5">
12420 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
12421<p>The HAL may choose to substitute test patterns from the sensor
12422with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
12423indistinguishable to the ISP whether the data came from the
12424sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
12425 </td>
12426 </tr>
12427
12428 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12429 <!-- end of entry -->
12430
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012431
12432
12433 <!-- end of kind -->
12434 </tbody>
12435
12436 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012437 <tr><td colspan="6" id="section_shading" class="section">shading</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012438
12439
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012440 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012441
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012442 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012443 <tr>
12444 <th class="th_name">Property Name</th>
12445 <th class="th_type">Type</th>
12446 <th class="th_description">Description</th>
12447 <th class="th_units">Units</th>
12448 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012449 <th class="th_tags">Tags</th>
12450 </tr>
12451 </thead>
12452
12453 <tbody>
12454
12455
12456
12457
12458
12459
12460
12461
12462
12463
12464 <tr class="entry" id="controls_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012465 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012466 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012467 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012468 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012469 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012470
Zhijun He2f86a212014-01-15 10:34:02 -080012471 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012472
12473 <ul class="entry_type_enum">
12474 <li>
12475 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012476 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012477 </li>
12478 <li>
12479 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012480 <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 -080012481 </li>
12482 <li>
12483 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012484 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012485 </li>
12486 </ul>
12487
12488 </td> <!-- entry_type -->
12489
12490 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012491 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012492to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012493 </td>
12494
12495 <td class="entry_units">
12496 </td>
12497
12498 <td class="entry_range">
12499 </td>
12500
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012501 <td class="entry_tags">
12502 </td>
12503
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012504 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012505 <tr class="entries_header">
12506 <th class="th_details" colspan="5">Details</th>
12507 </tr>
12508 <tr class="entry_cont">
12509 <td class="entry_details" colspan="5">
12510 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12511camera device,<wbr/> and an identity lens shading map data will be provided
12512if <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
12513shading 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/>
12514the 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
12515shown below:</p>
12516<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/>
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,<wbr/>
12519 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/>
12520 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/>
12521 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 ]
12522</code></pre>
12523<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12524camera device.<wbr/> Applications can request lens shading map data by setting
12525<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
12526lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12527by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12528 </td>
12529 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012530
12531
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012532 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12533 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012534
12535
12536 <tr class="entry" id="controls_android.shading.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012537 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012538 android.<wbr/>shading.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012539 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012540 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012541 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012542
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012543 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012544
12545
12546 </td> <!-- entry_type -->
12547
12548 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012549 <p>Control the amount of shading correction
12550applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012551 </td>
12552
12553 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012554 unitless: 1-10; 10 is full shading
12555 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012556 </td>
12557
12558 <td class="entry_range">
12559 </td>
12560
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012561 <td class="entry_tags">
12562 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012563 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012564 </ul>
12565 </td>
12566
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012567 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012568
12569
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012570 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12571 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012572
12573
12574
12575 <!-- end of kind -->
12576 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012577 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012578
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012579 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012580 <tr>
12581 <th class="th_name">Property Name</th>
12582 <th class="th_type">Type</th>
12583 <th class="th_description">Description</th>
12584 <th class="th_units">Units</th>
12585 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012586 <th class="th_tags">Tags</th>
12587 </tr>
12588 </thead>
12589
12590 <tbody>
12591
12592
12593
12594
12595
12596
12597
12598
12599
12600
12601 <tr class="entry" id="dynamic_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012602 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012603 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012604 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012605 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012606 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012607
Zhijun He2f86a212014-01-15 10:34:02 -080012608 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012609
12610 <ul class="entry_type_enum">
12611 <li>
12612 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012613 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012614 </li>
12615 <li>
12616 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012617 <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 -080012618 </li>
12619 <li>
12620 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012621 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012622 </li>
12623 </ul>
12624
12625 </td> <!-- entry_type -->
12626
12627 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012628 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012629to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012630 </td>
12631
12632 <td class="entry_units">
12633 </td>
12634
12635 <td class="entry_range">
12636 </td>
12637
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012638 <td class="entry_tags">
12639 </td>
12640
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012641 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012642 <tr class="entries_header">
12643 <th class="th_details" colspan="5">Details</th>
12644 </tr>
12645 <tr class="entry_cont">
12646 <td class="entry_details" colspan="5">
12647 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12648camera device,<wbr/> and an identity lens shading map data will be provided
12649if <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
12650shading 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/>
12651the 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
12652shown below:</p>
12653<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/>
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,<wbr/>
12656 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/>
12657 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/>
12658 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 ]
12659</code></pre>
12660<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12661camera device.<wbr/> Applications can request lens shading map data by setting
12662<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
12663lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12664by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12665 </td>
12666 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012667
12668
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012669 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12670 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012671
12672
12673
12674 <!-- end of kind -->
12675 </tbody>
12676
12677 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012678 <tr><td colspan="6" id="section_statistics" class="section">statistics</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012679
12680
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012681 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012682
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012683 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012684 <tr>
12685 <th class="th_name">Property Name</th>
12686 <th class="th_type">Type</th>
12687 <th class="th_description">Description</th>
12688 <th class="th_units">Units</th>
12689 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012690 <th class="th_tags">Tags</th>
12691 </tr>
12692 </thead>
12693
12694 <tbody>
12695
12696
12697
12698
12699
12700
12701
12702
12703
12704
12705 <tr class="entry" id="controls_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012706 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012707 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012708 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012709 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012710 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012711
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012712 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012713
12714 <ul class="entry_type_enum">
12715 <li>
12716 <span class="entry_type_enum_name">OFF</span>
12717 </li>
12718 <li>
12719 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012720 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
12721only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012722 </li>
12723 <li>
12724 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012725 <span class="entry_type_enum_notes"><p>Optional Return all face
12726metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012727 </li>
12728 </ul>
12729
12730 </td> <!-- entry_type -->
12731
12732 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012733 <p>State of the face detector
12734unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012735 </td>
12736
12737 <td class="entry_units">
12738 </td>
12739
12740 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012741 <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 -080012742 </td>
12743
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012744 <td class="entry_tags">
12745 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012746 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012747 </ul>
12748 </td>
12749
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012750 </tr>
12751 <tr class="entries_header">
12752 <th class="th_details" colspan="5">Details</th>
12753 </tr>
12754 <tr class="entry_cont">
12755 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012756 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012757should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080012758fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012759<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 -080012760 </td>
12761 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012762
12763
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012764 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12765 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012766
12767
12768 <tr class="entry" id="controls_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012769 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012770 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012771 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012772 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012773 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012774
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012775 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012776
12777 <ul class="entry_type_enum">
12778 <li>
12779 <span class="entry_type_enum_name">OFF</span>
12780 </li>
12781 <li>
12782 <span class="entry_type_enum_name">ON</span>
12783 </li>
12784 </ul>
12785
12786 </td> <!-- entry_type -->
12787
12788 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012789 <p>Operating mode for histogram
12790generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012791 </td>
12792
12793 <td class="entry_units">
12794 </td>
12795
12796 <td class="entry_range">
12797 </td>
12798
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012799 <td class="entry_tags">
12800 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012801 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012802 </ul>
12803 </td>
12804
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012805 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012806
12807
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012808 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12809 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012810
12811
12812 <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012813 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012814 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012815 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012816 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012817 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012818
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012819 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012820
12821 <ul class="entry_type_enum">
12822 <li>
12823 <span class="entry_type_enum_name">OFF</span>
12824 </li>
12825 <li>
12826 <span class="entry_type_enum_name">ON</span>
12827 </li>
12828 </ul>
12829
12830 </td> <!-- entry_type -->
12831
12832 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012833 <p>Operating mode for sharpness map
12834generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012835 </td>
12836
12837 <td class="entry_units">
12838 </td>
12839
12840 <td class="entry_range">
12841 </td>
12842
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012843 <td class="entry_tags">
12844 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012845 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012846 </ul>
12847 </td>
12848
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012849 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012850
12851
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012852 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12853 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012854
Zhijun He69fc0ea2013-07-17 09:42:58 -070012855
12856 <tr class="entry" id="controls_android.statistics.lensShadingMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012857 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012858 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012859 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012860 <td class="entry_type">
12861 <span class="entry_type_name entry_type_name_enum">byte</span>
12862
12863 <span class="entry_type_visibility"> [public]</span>
12864
12865 <ul class="entry_type_enum">
12866 <li>
12867 <span class="entry_type_enum_name">OFF</span>
12868 </li>
12869 <li>
12870 <span class="entry_type_enum_name">ON</span>
12871 </li>
12872 </ul>
12873
12874 </td> <!-- entry_type -->
12875
12876 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012877 <p>Whether the HAL needs to output the lens
12878shading map in output result metadata</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012879 </td>
12880
12881 <td class="entry_units">
12882 </td>
12883
12884 <td class="entry_range">
12885 </td>
12886
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012887 <td class="entry_tags">
12888 </td>
12889
12890 </tr>
12891 <tr class="entries_header">
12892 <th class="th_details" colspan="5">Details</th>
12893 </tr>
12894 <tr class="entry_cont">
12895 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012896 <p>When set to ON,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012897<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 -080012898the output result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012899 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012900 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012901
12902
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012903 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12904 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070012905
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012906
12907
12908 <!-- end of kind -->
12909 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012910 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012911
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012912 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012913 <tr>
12914 <th class="th_name">Property Name</th>
12915 <th class="th_type">Type</th>
12916 <th class="th_description">Description</th>
12917 <th class="th_units">Units</th>
12918 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012919 <th class="th_tags">Tags</th>
12920 </tr>
12921 </thead>
12922
12923 <tbody>
12924
12925
12926
12927
12928
12929
12930
12931
12932
12933
12934
12935
12936 <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012937 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012938 android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012939 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012940 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012941 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012942 <span class="entry_type_container">x</span>
12943
12944 <span class="entry_type_array">
12945 n
12946 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012947 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080012948 <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 -080012949
12950
12951 </td> <!-- entry_type -->
12952
12953 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012954 <p>Which face detection modes are available,<wbr/>
12955if any</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012956 </td>
12957
12958 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012959 List of enum:
Zhijun He69fc0ea2013-07-17 09:42:58 -070012960 OFF
12961 SIMPLE
Igor Murashkin0b080452013-12-27 15:30:25 -080012962 FULL
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012963 </td>
12964
12965 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012966 </td>
12967
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012968 <td class="entry_tags">
12969 </td>
12970
12971 </tr>
12972 <tr class="entries_header">
12973 <th class="th_details" colspan="5">Details</th>
12974 </tr>
12975 <tr class="entry_cont">
12976 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012977 <p>OFF means face detection is disabled,<wbr/> it must
12978be included in the list.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012979<p>SIMPLE means the device supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012980<a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
12981<a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a> outputs.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012982<p>FULL means the device additionally supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012983<a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a> and
12984<a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a> outputs.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012985 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012986 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012987
12988
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012989 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12990 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012991
12992
12993 <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012994 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012995 android.<wbr/>statistics.<wbr/>info.<wbr/>histogram<wbr/>Bucket<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012996 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012997 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012998 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012999
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013000 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013001
13002
13003 </td> <!-- entry_type -->
13004
13005 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013006 <p>Number of histogram buckets
13007supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013008 </td>
13009
13010 <td class="entry_units">
13011 </td>
13012
13013 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080013014 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013015 </td>
13016
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013017 <td class="entry_tags">
13018 </td>
13019
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013020 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013021
13022
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013023 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13024 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013025
13026
13027 <tr class="entry" id="static_android.statistics.info.maxFaceCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013028 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013029 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013030 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013031 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013032 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013033
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013034 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013035
13036
13037 </td> <!-- entry_type -->
13038
13039 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013040 <p>Maximum number of simultaneously detectable
13041faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013042 </td>
13043
13044 <td class="entry_units">
13045 </td>
13046
13047 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080013048 <p>&gt;= 4 if availableFaceDetectionModes lists
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013049modes besides OFF,<wbr/> otherwise 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013050 </td>
13051
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013052 <td class="entry_tags">
13053 </td>
13054
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013055 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013056
13057
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013058 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13059 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013060
13061
13062 <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013063 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013064 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Histogram<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013065 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013066 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013067 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013068
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013069 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013070
13071
13072 </td> <!-- entry_type -->
13073
13074 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013075 <p>Maximum value possible for a histogram
13076bucket</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013077 </td>
13078
13079 <td class="entry_units">
13080 </td>
13081
13082 <td class="entry_range">
13083 </td>
13084
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013085 <td class="entry_tags">
13086 </td>
13087
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013088 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013089
13090
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013091 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13092 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013093
13094
13095 <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013096 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013097 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Sharpness<wbr/>Map<wbr/>Value
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013098 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013099 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013100 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013101
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013102 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013103
13104
13105 </td> <!-- entry_type -->
13106
13107 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013108 <p>Maximum value possible for a sharpness map
13109region.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013110 </td>
13111
13112 <td class="entry_units">
13113 </td>
13114
13115 <td class="entry_range">
13116 </td>
13117
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013118 <td class="entry_tags">
13119 </td>
13120
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013121 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013122
13123
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013124 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13125 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013126
13127
13128 <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013129 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013130 android.<wbr/>statistics.<wbr/>info.<wbr/>sharpness<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013131 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013132 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013133 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013134 <span class="entry_type_container">x</span>
13135
13136 <span class="entry_type_array">
13137 2
13138 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013139 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013140 <div class="entry_type_notes">width x height</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013141
13142
13143 </td> <!-- entry_type -->
13144
13145 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013146 <p>Dimensions of the sharpness
13147map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013148 </td>
13149
13150 <td class="entry_units">
13151 </td>
13152
13153 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013154 <p>Must be at least 32 x 32</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013155 </td>
13156
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013157 <td class="entry_tags">
13158 </td>
13159
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013160 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013161
13162
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013163 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13164 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013165
13166
13167
13168
13169
13170
13171 <!-- end of kind -->
13172 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013173 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013174
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013175 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013176 <tr>
13177 <th class="th_name">Property Name</th>
13178 <th class="th_type">Type</th>
13179 <th class="th_description">Description</th>
13180 <th class="th_units">Units</th>
13181 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013182 <th class="th_tags">Tags</th>
13183 </tr>
13184 </thead>
13185
13186 <tbody>
13187
13188
13189
13190
13191
13192
13193
13194
13195
13196
13197 <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013198 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013199 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013200 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013201 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013202 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013203
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013204 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013205
13206 <ul class="entry_type_enum">
13207 <li>
13208 <span class="entry_type_enum_name">OFF</span>
13209 </li>
13210 <li>
13211 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013212 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
13213only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013214 </li>
13215 <li>
13216 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013217 <span class="entry_type_enum_notes"><p>Optional Return all face
13218metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013219 </li>
13220 </ul>
13221
13222 </td> <!-- entry_type -->
13223
13224 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013225 <p>State of the face detector
13226unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013227 </td>
13228
13229 <td class="entry_units">
13230 </td>
13231
13232 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013233 <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 -080013234 </td>
13235
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013236 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013237 <ul class="entry_tags">
13238 <li><a href="#tag_BC">BC</a></li>
13239 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013240 </td>
13241
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013242 </tr>
13243 <tr class="entries_header">
13244 <th class="th_details" colspan="5">Details</th>
13245 </tr>
13246 <tr class="entry_cont">
13247 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013248 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013249should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080013250fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013251<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 -080013252 </td>
13253 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013254
13255
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013256 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13257 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013258
13259
13260 <tr class="entry" id="dynamic_android.statistics.faceIds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013261 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013262 android.<wbr/>statistics.<wbr/>face<wbr/>Ids
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013263 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013264 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013265 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013266 <span class="entry_type_container">x</span>
13267
13268 <span class="entry_type_array">
13269 n
13270 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013271 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013272
13273
13274 </td> <!-- entry_type -->
13275
13276 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013277 <p>List of unique IDs for detected
13278faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013279 </td>
13280
13281 <td class="entry_units">
13282 </td>
13283
13284 <td class="entry_range">
13285 </td>
13286
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013287 <td class="entry_tags">
13288 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013289 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013290 </ul>
13291 </td>
13292
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013293 </tr>
13294 <tr class="entries_header">
13295 <th class="th_details" colspan="5">Details</th>
13296 </tr>
13297 <tr class="entry_cont">
13298 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013299 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013300 </td>
13301 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013302
13303
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013304 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13305 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013306
13307
13308 <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013309 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013310 android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013311 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013312 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013313 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013314 <span class="entry_type_container">x</span>
13315
13316 <span class="entry_type_array">
13317 n x 6
13318 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013319 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013320 <div class="entry_type_notes">(leftEyeX,<wbr/> leftEyeY,<wbr/> rightEyeX,<wbr/> rightEyeY,<wbr/> mouthX,<wbr/> mouthY)</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013321
13322
13323 </td> <!-- entry_type -->
13324
13325 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013326 <p>List of landmarks for detected
13327faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013328 </td>
13329
13330 <td class="entry_units">
13331 </td>
13332
13333 <td class="entry_range">
13334 </td>
13335
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013336 <td class="entry_tags">
13337 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013338 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013339 </ul>
13340 </td>
13341
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013342 </tr>
13343 <tr class="entries_header">
13344 <th class="th_details" colspan="5">Details</th>
13345 </tr>
13346 <tr class="entry_cont">
13347 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013348 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013349 </td>
13350 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013351
13352
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013353 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13354 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013355
13356
13357 <tr class="entry" id="dynamic_android.statistics.faceRectangles">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013358 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013359 android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013360 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013361 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013362 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013363 <span class="entry_type_container">x</span>
13364
13365 <span class="entry_type_array">
13366 n x 4
13367 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013368 <span class="entry_type_visibility"> [hidden as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013369 <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 -080013370
13371
13372 </td> <!-- entry_type -->
13373
13374 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013375 <p>List of the bounding rectangles for detected
13376faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013377 </td>
13378
13379 <td class="entry_units">
13380 </td>
13381
13382 <td class="entry_range">
13383 </td>
13384
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013385 <td class="entry_tags">
13386 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013387 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013388 </ul>
13389 </td>
13390
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013391 </tr>
13392 <tr class="entries_header">
13393 <th class="th_details" colspan="5">Details</th>
13394 </tr>
13395 <tr class="entry_cont">
13396 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013397 <p>Only available if faceDetectMode != OFF</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013398 </td>
13399 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013400
13401
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013402 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13403 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013404
13405
13406 <tr class="entry" id="dynamic_android.statistics.faceScores">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013407 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013408 android.<wbr/>statistics.<wbr/>face<wbr/>Scores
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013409 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013410 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013411 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013412 <span class="entry_type_container">x</span>
13413
13414 <span class="entry_type_array">
13415 n
13416 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013417 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013418
13419
13420 </td> <!-- entry_type -->
13421
13422 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013423 <p>List of the face confidence scores for
13424detected faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013425 </td>
13426
13427 <td class="entry_units">
13428 </td>
13429
13430 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013431 <p>1-100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013432 </td>
13433
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013434 <td class="entry_tags">
13435 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013436 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013437 </ul>
13438 </td>
13439
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013440 </tr>
13441 <tr class="entries_header">
13442 <th class="th_details" colspan="5">Details</th>
13443 </tr>
13444 <tr class="entry_cont">
13445 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013446 <p>Only available if faceDetectMode != OFF.<wbr/> The value should be
13447meaningful (for example,<wbr/> setting 100 at all times is illegal).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013448 </td>
13449 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013450
13451
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013452 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13453 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013454
13455
13456 <tr class="entry" id="dynamic_android.statistics.histogram">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013457 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013458 android.<wbr/>statistics.<wbr/>histogram
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013459 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013460 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013461 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013462 <span class="entry_type_container">x</span>
13463
13464 <span class="entry_type_array">
13465 n x 3
13466 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013467 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013468 <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 -080013469
13470
13471 </td> <!-- entry_type -->
13472
13473 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013474 <p>A 3-channel histogram based on the raw
13475sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013476 </td>
13477
13478 <td class="entry_units">
13479 </td>
13480
13481 <td class="entry_range">
13482 </td>
13483
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013484 <td class="entry_tags">
13485 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013486 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013487 </ul>
13488 </td>
13489
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013490 </tr>
13491 <tr class="entries_header">
13492 <th class="th_details" colspan="5">Details</th>
13493 </tr>
13494 <tr class="entry_cont">
13495 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013496 <p>The k'th bucket (0-based) covers the input range
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013497(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 -080013498(k + 1) * w /<wbr/> N ).<wbr/> If only a monochrome sharpness map is
13499supported,<wbr/> all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013500 </td>
13501 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013502
13503
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013504 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13505 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013506
13507
13508 <tr class="entry" id="dynamic_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013509 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013510 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013511 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013512 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013513 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013514
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013515 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013516
13517 <ul class="entry_type_enum">
13518 <li>
13519 <span class="entry_type_enum_name">OFF</span>
13520 </li>
13521 <li>
13522 <span class="entry_type_enum_name">ON</span>
13523 </li>
13524 </ul>
13525
13526 </td> <!-- entry_type -->
13527
13528 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013529 <p>Operating mode for histogram
13530generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013531 </td>
13532
13533 <td class="entry_units">
13534 </td>
13535
13536 <td class="entry_range">
13537 </td>
13538
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013539 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013540 <ul class="entry_tags">
13541 <li><a href="#tag_V1">V1</a></li>
13542 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013543 </td>
13544
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013545 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013546
13547
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013548 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13549 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013550
13551
13552 <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013553 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013554 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013555 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013556 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013557 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013558 <span class="entry_type_container">x</span>
13559
13560 <span class="entry_type_array">
13561 n x m x 3
13562 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013563 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013564 <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 -080013565
13566
13567 </td> <!-- entry_type -->
13568
13569 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013570 <p>A 3-channel sharpness map,<wbr/> based on the raw
13571sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013572 </td>
13573
13574 <td class="entry_units">
13575 </td>
13576
13577 <td class="entry_range">
13578 </td>
13579
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013580 <td class="entry_tags">
13581 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013582 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013583 </ul>
13584 </td>
13585
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013586 </tr>
13587 <tr class="entries_header">
13588 <th class="th_details" colspan="5">Details</th>
13589 </tr>
13590 <tr class="entry_cont">
13591 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013592 <p>If only a monochrome sharpness map is supported,<wbr/>
13593all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013594 </td>
13595 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013596
13597
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013598 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13599 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013600
13601
13602 <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013603 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013604 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013605 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013606 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013607 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013608
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013609 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013610
13611 <ul class="entry_type_enum">
13612 <li>
13613 <span class="entry_type_enum_name">OFF</span>
13614 </li>
13615 <li>
13616 <span class="entry_type_enum_name">ON</span>
13617 </li>
13618 </ul>
13619
13620 </td> <!-- entry_type -->
13621
13622 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013623 <p>Operating mode for sharpness map
13624generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013625 </td>
13626
13627 <td class="entry_units">
13628 </td>
13629
13630 <td class="entry_range">
13631 </td>
13632
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013633 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013634 <ul class="entry_tags">
13635 <li><a href="#tag_V1">V1</a></li>
13636 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013637 </td>
13638
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013639 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013640
13641
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013642 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13643 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013644
Zhijun He69fc0ea2013-07-17 09:42:58 -070013645
13646 <tr class="entry" id="dynamic_android.statistics.lensShadingMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013647 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013648 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013649 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013650 <td class="entry_type">
13651 <span class="entry_type_name">float</span>
13652 <span class="entry_type_container">x</span>
13653
13654 <span class="entry_type_array">
13655 4 x n x m
13656 </span>
13657 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013658 <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 -070013659
13660
13661 </td> <!-- entry_type -->
13662
13663 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013664 <p>The shading map is a low-resolution floating-point map
13665that lists the coefficients used to correct for vignetting,<wbr/> for each
13666Bayer color channel.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013667 </td>
13668
13669 <td class="entry_units">
13670 </td>
13671
13672 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013673 <p>Each gain factor is &gt;= 1</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013674 </td>
13675
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013676 <td class="entry_tags">
13677 </td>
13678
13679 </tr>
13680 <tr class="entries_header">
13681 <th class="th_details" colspan="5">Details</th>
13682 </tr>
13683 <tr class="entry_cont">
13684 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013685 <p>The least shaded section of the image should have a gain factor
13686of 1; all other sections should have gains above 1.<wbr/></p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013687<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 -080013688must take into account the colorCorrection settings.<wbr/></p>
13689<p>The shading map is for the entire active pixel array,<wbr/> and is not
13690affected by the crop region specified in the request.<wbr/> Each shading map
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013691entry is the value of the shading compensation map over a specific
Igor Murashkin0b080452013-12-27 15:30:25 -080013692pixel on the sensor.<wbr/> Specifically,<wbr/> with a (N x M) resolution shading
13693map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
13694(x,<wbr/>y) ϵ (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
13695pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
13696The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
13697<p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
13698channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
13699The shading map is stored in a fully interleaved format,<wbr/> and its size
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013700is 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 -080013701<p>The shading map should have on the order of 30-40 rows and columns,<wbr/>
13702and must be smaller than 64x64.<wbr/></p>
13703<p>As an example,<wbr/> given a very small map defined as:</p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013704<pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]
13705<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> =
Igor Murashkin0b080452013-12-27 15:30:25 -080013706[ 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/>
13707 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/>
13708 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/>
13709 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/>
13710 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/>
13711 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 -080013712</code></pre>
13713<p>The low-resolution scaling map images for each channel are
13714(displayed using nearest-neighbor interpolation):</p>
13715<p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
13716<img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
13717<img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
13718<img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013719<p>As a visualization only,<wbr/> inverting the full-color map to recover an
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013720image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013721<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 -070013722 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013723 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013724
13725
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013726 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13727 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013728
13729
13730 <tr class="entry" id="dynamic_android.statistics.predictedColorGains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013731 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013732 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013733 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013734 <td class="entry_type">
13735 <span class="entry_type_name">float</span>
13736 <span class="entry_type_container">x</span>
13737
13738 <span class="entry_type_array">
13739 4
13740 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013741 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013742 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013743
13744
13745 </td> <!-- entry_type -->
13746
13747 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013748 <p>The best-fit color channel gains calculated
13749by the HAL's statistics units for the current output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013750 </td>
13751
13752 <td class="entry_units">
13753 </td>
13754
13755 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013756 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013757 </td>
13758
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013759 <td class="entry_tags">
13760 </td>
13761
13762 </tr>
13763 <tr class="entries_header">
13764 <th class="th_details" colspan="5">Details</th>
13765 </tr>
13766 <tr class="entry_cont">
13767 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013768 <p>This may be different than the gains used for this frame,<wbr/>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013769since statistics processing on data from a new frame
13770typically completes after the transform has already been
Igor Murashkin0b080452013-12-27 15:30:25 -080013771applied to that frame.<wbr/></p>
13772<p>The 4 channel gains are defined in Bayer domain,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013773see <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 -080013774<p>This value should always be calculated by the AWB block,<wbr/>
13775regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013776 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013777 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013778
13779
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013780 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13781 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013782
13783
13784 <tr class="entry" id="dynamic_android.statistics.predictedColorTransform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013785 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013786 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013787 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013788 <td class="entry_type">
13789 <span class="entry_type_name">rational</span>
13790 <span class="entry_type_container">x</span>
13791
13792 <span class="entry_type_array">
13793 3 x 3
13794 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013795 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013796 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013797
13798
13799 </td> <!-- entry_type -->
13800
13801 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013802 <p>The best-fit color transform matrix estimate
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013803calculated by the HAL's statistics units for the current
Igor Murashkin0b080452013-12-27 15:30:25 -080013804output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013805 </td>
13806
13807 <td class="entry_units">
13808 </td>
13809
13810 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013811 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013812 </td>
13813
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013814 <td class="entry_tags">
13815 </td>
13816
13817 </tr>
13818 <tr class="entries_header">
13819 <th class="th_details" colspan="5">Details</th>
13820 </tr>
13821 <tr class="entry_cont">
13822 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013823 <p>The HAL must provide the estimate from its
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013824statistics unit on the white balance transforms to use
Igor Murashkin0b080452013-12-27 15:30:25 -080013825for the next frame.<wbr/> These are the values the HAL believes
13826are the best fit for the current output frame.<wbr/> This may
13827be different than the transform used for this frame,<wbr/> since
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013828statistics processing on data from a new frame typically
13829completes after the transform has already been applied to
Igor Murashkin0b080452013-12-27 15:30:25 -080013830that frame.<wbr/></p>
13831<p>These estimates must be provided for all frames,<wbr/> even if
13832capture settings and color transforms are set by the application.<wbr/></p>
13833<p>This value should always be calculated by the AWB block,<wbr/>
13834regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013835 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013836 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013837
13838
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013839 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13840 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013841
13842
13843 <tr class="entry" id="dynamic_android.statistics.sceneFlicker">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013844 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013845 android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013846 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013847 <td class="entry_type">
13848 <span class="entry_type_name entry_type_name_enum">byte</span>
13849
13850 <span class="entry_type_visibility"> [public]</span>
13851
13852 <ul class="entry_type_enum">
13853 <li>
13854 <span class="entry_type_enum_name">NONE</span>
13855 </li>
13856 <li>
13857 <span class="entry_type_enum_name">50HZ</span>
13858 </li>
13859 <li>
13860 <span class="entry_type_enum_name">60HZ</span>
13861 </li>
13862 </ul>
13863
13864 </td> <!-- entry_type -->
13865
13866 <td class="entry_description">
Zhijun Heb8512c52014-02-03 11:46:58 -080013867 <p>The camera device estimated scene illumination lighting
13868frequency.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013869 </td>
13870
13871 <td class="entry_units">
13872 </td>
13873
13874 <td class="entry_range">
13875 </td>
13876
Zhijun He69fc0ea2013-07-17 09:42:58 -070013877 <td class="entry_tags">
13878 </td>
13879
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013880 </tr>
13881 <tr class="entries_header">
13882 <th class="th_details" colspan="5">Details</th>
13883 </tr>
13884 <tr class="entry_cont">
13885 <td class="entry_details" colspan="5">
Zhijun Heb8512c52014-02-03 11:46:58 -080013886 <p>Many light sources,<wbr/> such as most fluorescent lights,<wbr/> flicker at a rate
13887that depends on the local utility power standards.<wbr/> This flicker must be
13888accounted for by auto-exposure routines to avoid artifacts in captured images.<wbr/>
13889The camera device uses this entry to tell the application what the scene
13890illuminant frequency is.<wbr/></p>
13891<p>When manual exposure control is enabled
13892(<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/>
13893the <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> doesn't do the antibanding,<wbr/> and the
13894application can ensure it selects exposure times that do not cause banding
13895issues by looking into this metadata field.<wbr/> See android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
13896for more details.<wbr/></p>
13897<p>Report NONE if there doesn't appear to be flickering illumination.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013898 </td>
13899 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013900
13901
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013902 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13903 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013904
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013905
13906
13907 <!-- end of kind -->
13908 </tbody>
13909
13910 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013911 <tr><td colspan="6" id="section_tonemap" class="section">tonemap</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013912
13913
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013914 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013915
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013916 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013917 <tr>
13918 <th class="th_name">Property Name</th>
13919 <th class="th_type">Type</th>
13920 <th class="th_description">Description</th>
13921 <th class="th_units">Units</th>
13922 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013923 <th class="th_tags">Tags</th>
13924 </tr>
13925 </thead>
13926
13927 <tbody>
13928
13929
13930
13931
13932
13933
13934
13935
13936
13937
13938 <tr class="entry" id="controls_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013939 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013940 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013941 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013942 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080013943 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070013944 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013945
Zhijun He704d1282013-08-19 15:26:33 -070013946 <span class="entry_type_array">
13947 n x 2
13948 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013949 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013950 <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 -080013951
13952
13953 </td> <!-- entry_type -->
13954
13955 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013956 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
13957channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
13958CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013959 </td>
13960
13961 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080013962 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013963 </td>
13964
13965 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013966 <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 -080013967 </td>
13968
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013969 <td class="entry_tags">
13970 </td>
13971
13972 </tr>
13973 <tr class="entries_header">
13974 <th class="th_details" colspan="5">Details</th>
13975 </tr>
13976 <tr class="entry_cont">
13977 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013978 <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 -080013979 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013980 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013981
13982
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013983 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13984 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013985
13986
13987 <tr class="entry" id="controls_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013988 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013989 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013990 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013991 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080013992 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070013993 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013994
Zhijun He704d1282013-08-19 15:26:33 -070013995 <span class="entry_type_array">
13996 n x 2
13997 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013998 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013999 <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 -080014000
14001
14002 </td> <!-- entry_type -->
14003
14004 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014005 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14006channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14007CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014008 </td>
14009
14010 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014011 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014012 </td>
14013
14014 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014015 <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 -080014016 </td>
14017
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014018 <td class="entry_tags">
14019 </td>
14020
14021 </tr>
14022 <tr class="entries_header">
14023 <th class="th_details" colspan="5">Details</th>
14024 </tr>
14025 <tr class="entry_cont">
14026 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014027 <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 -080014028 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014029 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014030
14031
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014032 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14033 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014034
14035
14036 <tr class="entry" id="controls_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014037 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014038 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014039 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014040 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014041 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014042 <span class="entry_type_container">x</span>
14043
14044 <span class="entry_type_array">
14045 n x 2
14046 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014047 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014048 <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 -080014049
14050
14051 </td> <!-- entry_type -->
14052
14053 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014054 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14055channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14056CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014057 </td>
14058
14059 <td class="entry_units">
14060 </td>
14061
14062 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014063 <p>0-1 on both input and output coordinates,<wbr/> normalized
14064as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014065 </td>
14066
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014067 <td class="entry_tags">
14068 <ul class="entry_tags">
14069 <li><a href="#tag_DNG">DNG</a></li>
14070 </ul>
14071 </td>
14072
14073 </tr>
14074 <tr class="entries_header">
14075 <th class="th_details" colspan="5">Details</th>
14076 </tr>
14077 <tr class="entry_cont">
14078 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014079 <p>Each channel's curve is defined by an array of control points:</p>
14080<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14081 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
140822 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14083<p>These are sorted in order of increasing <code>Pin</code>; it is always
14084guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14085define a complete mapping.<wbr/> For input values between control points,<wbr/>
14086the camera device must linearly interpolate between the control
14087points.<wbr/></p>
14088<p>Each curve can have an independent number of points,<wbr/> and the number
14089of points can be less than max (that is,<wbr/> the request doesn't have to
14090always provide a curve with number of points equivalent to
14091<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14092<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14093only specify the red channel and the precision is limited to 4
14094digits,<wbr/> for conciseness.<wbr/></p>
14095<p>Linear mapping:</p>
14096<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 ]
14097</code></pre>
14098<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14099<p>Invert mapping:</p>
14100<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 ]
14101</code></pre>
14102<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14103<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14104<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14105 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/>
14106 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/>
14107 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/>
14108 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 ]
14109</code></pre>
14110<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14111<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14112<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14113 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/>
14114 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/>
14115 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/>
14116 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 ]
14117</code></pre>
14118<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014119 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014120 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014121
Igor Murashkin94e06c42014-01-13 16:51:17 -080014122 <tr class="entries_header">
14123 <th class="th_details" colspan="5">HAL Implementation Details</th>
14124 </tr>
14125 <tr class="entry_cont">
14126 <td class="entry_details" colspan="5">
14127 <p>For good quality of mapping,<wbr/> at least 128 control points are
14128preferred.<wbr/></p>
14129<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14130control points used as are available.<wbr/></p>
14131 </td>
14132 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014133
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014134 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14135 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014136
14137
14138 <tr class="entry" id="controls_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014139 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014140 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014141 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014142 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014143 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014144
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014145 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014146
14147 <ul class="entry_type_enum">
14148 <li>
14149 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014150 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014151android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14152<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14153for applying the tonemapping curve specified by
14154<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
14155<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14156<p>Must not slow down frame rate relative to raw
14157sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014158 </li>
14159 <li>
14160 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014161 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14162<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014163 </li>
14164 <li>
14165 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014166 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14167<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014168 </li>
14169 </ul>
14170
14171 </td> <!-- entry_type -->
14172
14173 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014174 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014175 </td>
14176
14177 <td class="entry_units">
14178 </td>
14179
14180 <td class="entry_range">
14181 </td>
14182
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014183 <td class="entry_tags">
14184 </td>
14185
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014186 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014187 <tr class="entries_header">
14188 <th class="th_details" colspan="5">Details</th>
14189 </tr>
14190 <tr class="entry_cont">
14191 <td class="entry_details" colspan="5">
14192 <p>When switching to an application-defined contrast curve by setting
14193<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14194per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14195mapping from input high-bit-depth pixel value to the output
14196low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14197and output may change depending on the camera pipeline,<wbr/> the values
14198are specified by normalized floating-point numbers.<wbr/></p>
14199<p>More-complex color mapping operations such as 3D color look-up
14200tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14201transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14202CONTRAST_<wbr/>CURVE.<wbr/></p>
14203<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14204emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14205<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/>
14206These values are always available,<wbr/> and as close as possible to the
14207actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14208<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14209provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14210roughly the same.<wbr/></p>
14211 </td>
14212 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014213
14214
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014215 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14216 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014217
14218
14219
14220 <!-- end of kind -->
14221 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014222 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014223
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014224 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014225 <tr>
14226 <th class="th_name">Property Name</th>
14227 <th class="th_type">Type</th>
14228 <th class="th_description">Description</th>
14229 <th class="th_units">Units</th>
14230 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014231 <th class="th_tags">Tags</th>
14232 </tr>
14233 </thead>
14234
14235 <tbody>
14236
14237
14238
14239
14240
14241
14242
14243
14244
14245
14246 <tr class="entry" id="static_android.tonemap.maxCurvePoints">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014247 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014248 android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014249 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014250 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014251 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014252
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014253 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014254
14255
14256 </td> <!-- entry_type -->
14257
14258 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014259 <p>Maximum number of supported points in the
Igor Murashkin94e06c42014-01-13 16:51:17 -080014260tonemap curve that can be used for <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/> or
14261<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 -080014262 </td>
14263
14264 <td class="entry_units">
14265 </td>
14266
14267 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014268 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014269 </td>
14270
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014271 <td class="entry_tags">
14272 </td>
14273
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014274 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014275 <tr class="entries_header">
14276 <th class="th_details" colspan="5">Details</th>
14277 </tr>
14278 <tr class="entry_cont">
14279 <td class="entry_details" colspan="5">
14280 <p>If the actual number of points provided by the application (in
14281android.<wbr/>tonemap.<wbr/>curve*) is less than max,<wbr/> the camera device will
14282resample the curve to its internal representation,<wbr/> using linear
14283interpolation.<wbr/></p>
14284<p>The output curves in the result metadata may have a different number
14285of points than the input curves,<wbr/> and will represent the actual
14286hardware curves used as closely as possible when linearly interpolated.<wbr/></p>
14287 </td>
14288 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014289
Igor Murashkin94e06c42014-01-13 16:51:17 -080014290 <tr class="entries_header">
14291 <th class="th_details" colspan="5">HAL Implementation Details</th>
14292 </tr>
14293 <tr class="entry_cont">
14294 <td class="entry_details" colspan="5">
14295 <p>This value must be at least 64.<wbr/> This should be at least 128.<wbr/></p>
14296 </td>
14297 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014298
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014299 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14300 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014301
14302
14303
14304 <!-- end of kind -->
14305 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014306 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014307
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014308 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014309 <tr>
14310 <th class="th_name">Property Name</th>
14311 <th class="th_type">Type</th>
14312 <th class="th_description">Description</th>
14313 <th class="th_units">Units</th>
14314 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014315 <th class="th_tags">Tags</th>
14316 </tr>
14317 </thead>
14318
14319 <tbody>
14320
14321
14322
14323
14324
14325
14326
14327
14328
14329
14330 <tr class="entry" id="dynamic_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014331 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014332 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014333 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014334 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014335 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014336 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014337
Zhijun He704d1282013-08-19 15:26:33 -070014338 <span class="entry_type_array">
14339 n x 2
14340 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014341 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014342 <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 -080014343
14344
14345 </td> <!-- entry_type -->
14346
14347 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014348 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
14349channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14350CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014351 </td>
14352
14353 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014354 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014355 </td>
14356
14357 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014358 <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 -080014359 </td>
14360
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014361 <td class="entry_tags">
14362 </td>
14363
14364 </tr>
14365 <tr class="entries_header">
14366 <th class="th_details" colspan="5">Details</th>
14367 </tr>
14368 <tr class="entry_cont">
14369 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014370 <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 -080014371 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014372 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014373
14374
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014375 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14376 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014377
14378
14379 <tr class="entry" id="dynamic_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014380 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014381 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014382 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014383 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014384 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014385 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014386
Zhijun He704d1282013-08-19 15:26:33 -070014387 <span class="entry_type_array">
14388 n x 2
14389 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014390 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014391 <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 -080014392
14393
14394 </td> <!-- entry_type -->
14395
14396 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014397 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14398channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14399CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014400 </td>
14401
14402 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014403 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014404 </td>
14405
14406 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014407 <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 -080014408 </td>
14409
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014410 <td class="entry_tags">
14411 </td>
14412
14413 </tr>
14414 <tr class="entries_header">
14415 <th class="th_details" colspan="5">Details</th>
14416 </tr>
14417 <tr class="entry_cont">
14418 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014419 <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 -080014420 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014421 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014422
14423
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014424 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14425 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014426
14427
14428 <tr class="entry" id="dynamic_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014429 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014430 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014431 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014432 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014433 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014434 <span class="entry_type_container">x</span>
14435
14436 <span class="entry_type_array">
14437 n x 2
14438 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014439 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014440 <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 -080014441
14442
14443 </td> <!-- entry_type -->
14444
14445 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014446 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14447channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14448CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014449 </td>
14450
14451 <td class="entry_units">
14452 </td>
14453
14454 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014455 <p>0-1 on both input and output coordinates,<wbr/> normalized
14456as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014457 </td>
14458
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014459 <td class="entry_tags">
14460 <ul class="entry_tags">
14461 <li><a href="#tag_DNG">DNG</a></li>
14462 </ul>
14463 </td>
14464
14465 </tr>
14466 <tr class="entries_header">
14467 <th class="th_details" colspan="5">Details</th>
14468 </tr>
14469 <tr class="entry_cont">
14470 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014471 <p>Each channel's curve is defined by an array of control points:</p>
14472<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14473 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
144742 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14475<p>These are sorted in order of increasing <code>Pin</code>; it is always
14476guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14477define a complete mapping.<wbr/> For input values between control points,<wbr/>
14478the camera device must linearly interpolate between the control
14479points.<wbr/></p>
14480<p>Each curve can have an independent number of points,<wbr/> and the number
14481of points can be less than max (that is,<wbr/> the request doesn't have to
14482always provide a curve with number of points equivalent to
14483<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14484<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14485only specify the red channel and the precision is limited to 4
14486digits,<wbr/> for conciseness.<wbr/></p>
14487<p>Linear mapping:</p>
14488<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 ]
14489</code></pre>
14490<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14491<p>Invert mapping:</p>
14492<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 ]
14493</code></pre>
14494<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14495<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14496<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14497 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/>
14498 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/>
14499 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/>
14500 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 ]
14501</code></pre>
14502<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14503<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14504<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14505 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/>
14506 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/>
14507 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/>
14508 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 ]
14509</code></pre>
14510<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014511 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014512 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014513
Igor Murashkin94e06c42014-01-13 16:51:17 -080014514 <tr class="entries_header">
14515 <th class="th_details" colspan="5">HAL Implementation Details</th>
14516 </tr>
14517 <tr class="entry_cont">
14518 <td class="entry_details" colspan="5">
14519 <p>For good quality of mapping,<wbr/> at least 128 control points are
14520preferred.<wbr/></p>
14521<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14522control points used as are available.<wbr/></p>
14523 </td>
14524 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014525
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014526 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14527 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014528
14529
14530 <tr class="entry" id="dynamic_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014531 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014532 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014533 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014534 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014535 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014536
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014537 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014538
14539 <ul class="entry_type_enum">
14540 <li>
14541 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014542 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014543android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14544<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14545for applying the tonemapping curve specified by
14546<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
14547<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14548<p>Must not slow down frame rate relative to raw
14549sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014550 </li>
14551 <li>
14552 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014553 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14554<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014555 </li>
14556 <li>
14557 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014558 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14559<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014560 </li>
14561 </ul>
14562
14563 </td> <!-- entry_type -->
14564
14565 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014566 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014567 </td>
14568
14569 <td class="entry_units">
14570 </td>
14571
14572 <td class="entry_range">
14573 </td>
14574
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014575 <td class="entry_tags">
14576 </td>
14577
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014578 </tr>
Igor Murashkin595f45b2014-01-17 17:27:15 -080014579 <tr class="entries_header">
14580 <th class="th_details" colspan="5">Details</th>
14581 </tr>
14582 <tr class="entry_cont">
14583 <td class="entry_details" colspan="5">
14584 <p>When switching to an application-defined contrast curve by setting
14585<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14586per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14587mapping from input high-bit-depth pixel value to the output
14588low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14589and output may change depending on the camera pipeline,<wbr/> the values
14590are specified by normalized floating-point numbers.<wbr/></p>
14591<p>More-complex color mapping operations such as 3D color look-up
14592tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14593transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14594CONTRAST_<wbr/>CURVE.<wbr/></p>
14595<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14596emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14597<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/>
14598These values are always available,<wbr/> and as close as possible to the
14599actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14600<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14601provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14602roughly the same.<wbr/></p>
14603 </td>
14604 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014605
14606
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014607 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14608 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014609
14610
14611
14612 <!-- end of kind -->
14613 </tbody>
14614
14615 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014616 <tr><td colspan="6" id="section_led" class="section">led</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014617
14618
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014619 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014620
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014621 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014622 <tr>
14623 <th class="th_name">Property Name</th>
14624 <th class="th_type">Type</th>
14625 <th class="th_description">Description</th>
14626 <th class="th_units">Units</th>
14627 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014628 <th class="th_tags">Tags</th>
14629 </tr>
14630 </thead>
14631
14632 <tbody>
14633
14634
14635
14636
14637
14638
14639
14640
14641
14642
14643 <tr class="entry" id="controls_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014644 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014645 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014646 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014647 <td class="entry_type">
14648 <span class="entry_type_name entry_type_name_enum">byte</span>
14649
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014650 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014651
14652 <ul class="entry_type_enum">
14653 <li>
14654 <span class="entry_type_enum_name">OFF</span>
14655 </li>
14656 <li>
14657 <span class="entry_type_enum_name">ON</span>
14658 </li>
14659 </ul>
14660
14661 </td> <!-- entry_type -->
14662
14663 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014664 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014665that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014666Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014667disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014668any untrusted applications.<wbr/></p>
14669<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14670transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14671data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014672<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014673doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014674 </td>
14675
14676 <td class="entry_units">
14677 </td>
14678
14679 <td class="entry_range">
14680 </td>
14681
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014682 <td class="entry_tags">
14683 </td>
14684
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014685 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014686
14687
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014688 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14689 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014690
14691
14692
14693 <!-- end of kind -->
14694 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014695 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014696
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014697 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014698 <tr>
14699 <th class="th_name">Property Name</th>
14700 <th class="th_type">Type</th>
14701 <th class="th_description">Description</th>
14702 <th class="th_units">Units</th>
14703 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014704 <th class="th_tags">Tags</th>
14705 </tr>
14706 </thead>
14707
14708 <tbody>
14709
14710
14711
14712
14713
14714
14715
14716
14717
14718
14719 <tr class="entry" id="dynamic_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014720 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014721 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014722 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014723 <td class="entry_type">
14724 <span class="entry_type_name entry_type_name_enum">byte</span>
14725
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014726 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014727
14728 <ul class="entry_type_enum">
14729 <li>
14730 <span class="entry_type_enum_name">OFF</span>
14731 </li>
14732 <li>
14733 <span class="entry_type_enum_name">ON</span>
14734 </li>
14735 </ul>
14736
14737 </td> <!-- entry_type -->
14738
14739 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014740 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014741that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014742Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014743disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014744any untrusted applications.<wbr/></p>
14745<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14746transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14747data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014748<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014749doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014750 </td>
14751
14752 <td class="entry_units">
14753 </td>
14754
14755 <td class="entry_range">
14756 </td>
14757
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014758 <td class="entry_tags">
14759 </td>
14760
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014761 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014762
14763
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014764 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14765 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014766
14767
14768
14769 <!-- end of kind -->
14770 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014771 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014772
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014773 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014774 <tr>
14775 <th class="th_name">Property Name</th>
14776 <th class="th_type">Type</th>
14777 <th class="th_description">Description</th>
14778 <th class="th_units">Units</th>
14779 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014780 <th class="th_tags">Tags</th>
14781 </tr>
14782 </thead>
14783
14784 <tbody>
14785
14786
14787
14788
14789
14790
14791
14792
14793
14794
14795 <tr class="entry" id="static_android.led.availableLeds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014796 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014797 android.<wbr/>led.<wbr/>available<wbr/>Leds
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014798 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014799 <td class="entry_type">
14800 <span class="entry_type_name entry_type_name_enum">byte</span>
14801 <span class="entry_type_container">x</span>
14802
14803 <span class="entry_type_array">
14804 n
14805 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014806 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014807
14808 <ul class="entry_type_enum">
14809 <li>
14810 <span class="entry_type_enum_name">TRANSMIT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014811 <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 -070014812 </li>
14813 </ul>
14814
14815 </td> <!-- entry_type -->
14816
14817 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014818 <p>A list of camera LEDs that are available on this system.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014819 </td>
14820
14821 <td class="entry_units">
14822 </td>
14823
14824 <td class="entry_range">
14825 </td>
14826
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014827 <td class="entry_tags">
14828 </td>
14829
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014830 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014831
14832
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014833 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14834 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014835
14836
14837
14838 <!-- end of kind -->
14839 </tbody>
14840
14841 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014842 <tr><td colspan="6" id="section_info" class="section">info</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014843
14844
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014845 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014846
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014847 <thead class="entries_header">
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014848 <tr>
14849 <th class="th_name">Property Name</th>
14850 <th class="th_type">Type</th>
14851 <th class="th_description">Description</th>
14852 <th class="th_units">Units</th>
14853 <th class="th_range">Range</th>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014854 <th class="th_tags">Tags</th>
14855 </tr>
14856 </thead>
14857
14858 <tbody>
14859
14860
14861
14862
14863
14864
14865
14866
14867
14868
14869 <tr class="entry" id="static_android.info.supportedHardwareLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014870 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014871 android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014872 </td>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014873 <td class="entry_type">
14874 <span class="entry_type_name entry_type_name_enum">byte</span>
14875
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014876 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014877
14878 <ul class="entry_type_enum">
14879 <li>
14880 <span class="entry_type_enum_name">LIMITED</span>
14881 </li>
14882 <li>
14883 <span class="entry_type_enum_name">FULL</span>
14884 </li>
14885 </ul>
14886
14887 </td> <!-- entry_type -->
14888
14889 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014890 <p>The camera 3 HAL device can implement one of two possible
14891operational modes; limited and full.<wbr/> Full support is
14892expected from new higher-end devices.<wbr/> Limited mode has
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014893hardware requirements roughly in line with those for a
Igor Murashkin0b080452013-12-27 15:30:25 -080014894camera HAL device v1 implementation,<wbr/> and is expected from
14895older or inexpensive devices.<wbr/> Full is a strict superset of
14896limited,<wbr/> and they share the same essential operational flow.<wbr/></p>
14897<p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014898 </td>
14899
14900 <td class="entry_units">
14901 </td>
14902
14903 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014904 <p>Optional.<wbr/> Default value is LIMITED.<wbr/></p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014905 </td>
14906
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014907 <td class="entry_tags">
14908 </td>
14909
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014910 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014911
14912
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014913 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14914 <!-- end of entry -->
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014915
14916
14917
14918 <!-- end of kind -->
14919 </tbody>
14920
14921 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014922 <tr><td colspan="6" id="section_blackLevel" class="section">blackLevel</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014923
14924
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014925 <tr><td colspan="6" class="kind">controls</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014926
14927 <thead class="entries_header">
14928 <tr>
14929 <th class="th_name">Property Name</th>
14930 <th class="th_type">Type</th>
14931 <th class="th_description">Description</th>
14932 <th class="th_units">Units</th>
14933 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014934 <th class="th_tags">Tags</th>
14935 </tr>
14936 </thead>
14937
14938 <tbody>
14939
14940
14941
14942
14943
14944
14945
14946
14947
14948
14949 <tr class="entry" id="controls_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014950 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014951 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014952 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014953 <td class="entry_type">
14954 <span class="entry_type_name entry_type_name_enum">byte</span>
14955
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014956 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014957
14958 <ul class="entry_type_enum">
14959 <li>
14960 <span class="entry_type_enum_name">OFF</span>
14961 </li>
14962 <li>
14963 <span class="entry_type_enum_name">ON</span>
14964 </li>
14965 </ul>
14966
14967 </td> <!-- entry_type -->
14968
14969 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014970 <p>Whether black-level compensation is locked
14971to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014972 </td>
14973
14974 <td class="entry_units">
14975 </td>
14976
14977 <td class="entry_range">
14978 </td>
14979
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014980 <td class="entry_tags">
14981 <ul class="entry_tags">
14982 <li><a href="#tag_HAL2">HAL2</a></li>
14983 </ul>
14984 </td>
14985
14986 </tr>
14987 <tr class="entries_header">
14988 <th class="th_details" colspan="5">Details</th>
14989 </tr>
14990 <tr class="entry_cont">
14991 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014992 <p>When set to ON,<wbr/> the values used for black-level
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014993compensation will not change until the lock is set to
Igor Murashkin0b080452013-12-27 15:30:25 -080014994OFF.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014995<p>Since changes to certain capture parameters (such as
14996exposure time) may require resetting of black level
Igor Murashkin0b080452013-12-27 15:30:25 -080014997compensation,<wbr/> the camera device must report whether setting
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014998the black level lock was successful in the output result
Igor Murashkin0b080452013-12-27 15:30:25 -080014999metadata.<wbr/></p>
15000<p>For example,<wbr/> if a sequence of requests is as follows:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015001<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015002<li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
15003<li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15004<li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15005<li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15006<li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15007<li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015008</ul>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015009<p>And the exposure change in Request 4 requires the camera
Igor Murashkin0b080452013-12-27 15:30:25 -080015010device to reset the black level offsets,<wbr/> then the output
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015011result metadata is expected to be:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015012<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015013<li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
15014<li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15015<li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15016<li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li>
15017<li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15018<li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015019</ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015020<p>This indicates to the application that on frame 4,<wbr/> black
15021levels were reset due to exposure value changes,<wbr/> and pixel
15022values may not be consistent across captures.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015023<p>The camera device will maintain the lock to the extent
Igor Murashkin0b080452013-12-27 15:30:25 -080015024possible,<wbr/> only overriding the lock to OFF when changes to
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015025other request parameters require a black level recalculation
Igor Murashkin0b080452013-12-27 15:30:25 -080015026or reset.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015027 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015028 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015029
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015030 <tr class="entries_header">
15031 <th class="th_details" colspan="5">HAL Implementation Details</th>
15032 </tr>
15033 <tr class="entry_cont">
15034 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015035 <p>If for some reason black level locking is no longer possible
15036(for example,<wbr/> the analog gain has changed,<wbr/> which forces
15037black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015038override this request (and it must report 'OFF' when this
15039does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080015040possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015041 </td>
15042 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015043
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015044 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15045 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070015046
15047
15048
15049 <!-- end of kind -->
15050 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015051 <tr><td colspan="6" class="kind">dynamic</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015052
15053 <thead class="entries_header">
15054 <tr>
15055 <th class="th_name">Property Name</th>
15056 <th class="th_type">Type</th>
15057 <th class="th_description">Description</th>
15058 <th class="th_units">Units</th>
15059 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015060 <th class="th_tags">Tags</th>
15061 </tr>
15062 </thead>
15063
15064 <tbody>
15065
15066
15067
15068
15069
15070
15071
15072
15073
15074
15075 <tr class="entry" id="dynamic_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015076 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015077 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015078 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015079 <td class="entry_type">
15080 <span class="entry_type_name entry_type_name_enum">byte</span>
15081
Igor Murashkinb8dc8812013-07-17 16:29:34 -070015082 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015083
15084 <ul class="entry_type_enum">
15085 <li>
15086 <span class="entry_type_enum_name">OFF</span>
15087 </li>
15088 <li>
15089 <span class="entry_type_enum_name">ON</span>
15090 </li>
15091 </ul>
15092
15093 </td> <!-- entry_type -->
15094
15095 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015096 <p>Whether black-level compensation is locked
15097to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015098 </td>
15099
15100 <td class="entry_units">
15101 </td>
15102
15103 <td class="entry_range">
15104 </td>
15105
Zhijun He69fc0ea2013-07-17 09:42:58 -070015106 <td class="entry_tags">
15107 <ul class="entry_tags">
15108 <li><a href="#tag_HAL2">HAL2</a></li>
15109 </ul>
15110 </td>
15111
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015112 </tr>
15113 <tr class="entries_header">
15114 <th class="th_details" colspan="5">Details</th>
15115 </tr>
15116 <tr class="entry_cont">
15117 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015118 <p>Whether the black level offset was locked for this frame.<wbr/> Should be
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080015119ON 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 -080015120a change in other capture settings forced the camera device to
Igor Murashkin0b080452013-12-27 15:30:25 -080015121perform a black level reset.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015122 </td>
15123 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015124
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015125 <tr class="entries_header">
15126 <th class="th_details" colspan="5">HAL Implementation Details</th>
15127 </tr>
15128 <tr class="entry_cont">
15129 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015130 <p>If for some reason black level locking is no longer possible
15131(for example,<wbr/> the analog gain has changed,<wbr/> which forces
15132black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015133override this request (and it must report 'OFF' when this
15134does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080015135possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015136 </td>
15137 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015138
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015139 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15140 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070015141
15142
15143
15144 <!-- end of kind -->
15145 </tbody>
15146
15147 <!-- end of section -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015148 <tr><td colspan="6" id="section_sync" class="section">sync</td></tr>
15149
15150
15151 <tr><td colspan="6" class="kind">dynamic</td></tr>
15152
15153 <thead class="entries_header">
15154 <tr>
15155 <th class="th_name">Property Name</th>
15156 <th class="th_type">Type</th>
15157 <th class="th_description">Description</th>
15158 <th class="th_units">Units</th>
15159 <th class="th_range">Range</th>
15160 <th class="th_tags">Tags</th>
15161 </tr>
15162 </thead>
15163
15164 <tbody>
15165
15166
15167
15168
15169
15170
15171
15172
15173
15174
15175 <tr class="entry" id="dynamic_android.sync.frameNumber">
15176 <td class="entry_name" rowspan="5">
15177 android.<wbr/>sync.<wbr/>frame<wbr/>Number
15178 </td>
15179 <td class="entry_type">
15180 <span class="entry_type_name entry_type_name_enum">int64</span>
15181
15182 <span class="entry_type_visibility"> [hidden]</span>
15183
15184 <ul class="entry_type_enum">
15185 <li>
15186 <span class="entry_type_enum_name">CONVERGING</span>
15187 <span class="entry_type_enum_value">-1</span>
15188 <span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/>
15189Synchronization is in progress,<wbr/> and reading metadata from this
15190result may include a mix of data that have taken effect since the
15191last synchronization time.<wbr/></p>
15192<p>In some future result,<wbr/> within <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> frames,<wbr/>
15193this value will update to the actual frame number frame number
15194the result is guaranteed to be synchronized to (as long as the
15195request settings remain constant).<wbr/></p></span>
15196 </li>
15197 <li>
15198 <span class="entry_type_enum_name">UNKNOWN</span>
15199 <span class="entry_type_enum_value">-2</span>
15200 <span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/> The
15201result may have already converged,<wbr/> or it may be in progress.<wbr/>
15202Reading from this result may include some mix of settings from
15203past requests.<wbr/></p>
15204<p>After a settings change,<wbr/> the new settings will eventually all
15205take effect for the output buffers and results.<wbr/> However,<wbr/> this
15206value will not change when that happens.<wbr/> Altering settings
15207rapidly may provide outcomes using mixes of settings from recent
15208requests.<wbr/></p>
15209<p>This value is intended primarily for backwards compatibility with
15210the older camera implementations (for android.<wbr/>hardware.<wbr/>Camera).<wbr/></p></span>
15211 </li>
15212 </ul>
15213
15214 </td> <!-- entry_type -->
15215
15216 <td class="entry_description">
15217 <p>The frame number corresponding to the last request
15218with which the output result (metadata + buffers) has been fully
15219synchronized.<wbr/></p>
15220 </td>
15221
15222 <td class="entry_units">
15223 </td>
15224
15225 <td class="entry_range">
15226 <p>Either a non-negative value corresponding to a
15227<code>frame_<wbr/>number</code>,<wbr/> or one of the two enums (CONVERGING /<wbr/> UNKNOWN).<wbr/></p>
15228 </td>
15229
15230 <td class="entry_tags">
15231 <ul class="entry_tags">
15232 <li><a href="#tag_LIMITED">LIMITED</a></li>
15233 </ul>
15234 </td>
15235
15236 </tr>
15237 <tr class="entries_header">
15238 <th class="th_details" colspan="5">Details</th>
15239 </tr>
15240 <tr class="entry_cont">
15241 <td class="entry_details" colspan="5">
15242 <p>When a request is submitted to the camera device,<wbr/> there is usually a
15243delay of several frames before the controls get applied.<wbr/> A camera
15244device may either choose to account for this delay by implementing a
15245pipeline and carefully submit well-timed atomic control updates,<wbr/> or
15246it may start streaming control changes that span over several frame
15247boundaries.<wbr/></p>
15248<p>In the latter case,<wbr/> whenever a request's settings change relative to
15249the previous submitted request,<wbr/> the full set of changes may take
15250multiple frame durations to fully take effect.<wbr/> Some settings may
15251take effect sooner (in less frame durations) than others.<wbr/></p>
15252<p>While a set of control changes are being propagated,<wbr/> this value
15253will be CONVERGING.<wbr/></p>
15254<p>Once it is fully known that a set of control changes have been
15255finished propagating,<wbr/> and the resulting updated control settings
15256have been read back by the camera device,<wbr/> this value will be set
15257to a non-negative frame number (corresponding to the request to
15258which the results have synchronized to).<wbr/></p>
15259<p>Older camera device implementations may not have a way to detect
15260when all camera controls have been applied,<wbr/> and will always set this
15261value to UNKNOWN.<wbr/></p>
15262<p>FULL capability devices will always have this value set to the
15263frame number of the request corresponding to this result.<wbr/></p>
15264<p><em>Further details</em>:</p>
15265<ul>
15266<li>Whenever a request differs from the last request,<wbr/> any future
15267results not yet returned may have this value set to CONVERGING (this
15268could include any in-progress captures not yet returned by the camera
15269device,<wbr/> for more details see pipeline considerations below).<wbr/></li>
15270<li>Submitting a series of multiple requests that differ from the
15271previous request (e.<wbr/>g.<wbr/> r1,<wbr/> r2,<wbr/> r3 s.<wbr/>t.<wbr/> r1 != r2 != r3)
15272moves the new synchronization frame to the last non-repeating
15273request (using the smallest frame number from the contiguous list of
15274repeating requests).<wbr/></li>
15275<li>Submitting the same request repeatedly will not change this value
15276to CONVERGING,<wbr/> if it was already a non-negative value.<wbr/></li>
15277<li>When this value changes to non-negative,<wbr/> that means that all of the
15278metadata controls from the request have been applied,<wbr/> all of the
15279metadata controls from the camera device have been read to the
15280updated values (into the result),<wbr/> and all of the graphics buffers
15281corresponding to this result are also synchronized to the request.<wbr/></li>
15282</ul>
15283<p><em>Pipeline considerations</em>:</p>
15284<p>Submitting a request with updated controls relative to the previously
15285submitted requests may also invalidate the synchronization state
15286of all the results corresponding to currently in-flight requests.<wbr/></p>
15287<p>In other words,<wbr/> results for this current request and up to
15288<a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> prior requests may have their
15289<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> change to CONVERGING.<wbr/></p>
15290 </td>
15291 </tr>
15292
15293 <tr class="entries_header">
15294 <th class="th_details" colspan="5">HAL Implementation Details</th>
15295 </tr>
15296 <tr class="entry_cont">
15297 <td class="entry_details" colspan="5">
15298 <p>Using UNKNOWN here is illegal unless android.<wbr/>sync.<wbr/>max<wbr/>Latency
15299is also UNKNOWN.<wbr/></p>
15300<p>FULL capability devices should simply set this value to the
15301<code>frame_<wbr/>number</code> of the request this result corresponds to.<wbr/></p>
15302 </td>
15303 </tr>
15304
15305 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15306 <!-- end of entry -->
15307
15308
15309
15310 <!-- end of kind -->
15311 </tbody>
15312 <tr><td colspan="6" class="kind">static</td></tr>
15313
15314 <thead class="entries_header">
15315 <tr>
15316 <th class="th_name">Property Name</th>
15317 <th class="th_type">Type</th>
15318 <th class="th_description">Description</th>
15319 <th class="th_units">Units</th>
15320 <th class="th_range">Range</th>
15321 <th class="th_tags">Tags</th>
15322 </tr>
15323 </thead>
15324
15325 <tbody>
15326
15327
15328
15329
15330
15331
15332
15333
15334
15335
15336 <tr class="entry" id="static_android.sync.maxLatency">
15337 <td class="entry_name" rowspan="5">
15338 android.<wbr/>sync.<wbr/>max<wbr/>Latency
15339 </td>
15340 <td class="entry_type">
15341 <span class="entry_type_name entry_type_name_enum">int32</span>
15342
15343 <span class="entry_type_visibility"> [public]</span>
15344
15345 <ul class="entry_type_enum">
15346 <li>
15347 <span class="entry_type_enum_name">PER_FRAME_CONTROL</span>
15348 <span class="entry_type_enum_value">0</span>
15349 <span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/>
15350(and furthermore for all results,<wbr/>
15351<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>
15352<p>Changing controls over multiple requests one after another will
15353produce results that have those controls applied atomically
15354each frame.<wbr/></p>
15355<p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
15356 </li>
15357 <li>
15358 <span class="entry_type_enum_name">UNKNOWN</span>
15359 <span class="entry_type_enum_value">-1</span>
15360 <span class="entry_type_enum_notes"><p>Each new frame has some subset (potentially the entire set)
15361of the past requests applied to the camera settings.<wbr/></p>
15362<p>By submitting a series of identical requests,<wbr/> the camera device
15363will eventually have the camera settings applied,<wbr/> but it is
15364unknown when that exact point will be.<wbr/></p></span>
15365 </li>
15366 </ul>
15367
15368 </td> <!-- entry_type -->
15369
15370 <td class="entry_description">
15371 <p>The maximum number of frames that can occur after a request
15372(different than the previous) has been submitted,<wbr/> and before the
15373result's state becomes synchronized (by setting
15374<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> to a non-negative value).<wbr/></p>
15375 </td>
15376
15377 <td class="entry_units">
15378 number of processed requests
15379 </td>
15380
15381 <td class="entry_range">
15382 <p>&gt;= -1</p>
15383 </td>
15384
15385 <td class="entry_tags">
15386 <ul class="entry_tags">
15387 <li><a href="#tag_LIMITED">LIMITED</a></li>
15388 </ul>
15389 </td>
15390
15391 </tr>
15392 <tr class="entries_header">
15393 <th class="th_details" colspan="5">Details</th>
15394 </tr>
15395 <tr class="entry_cont">
15396 <td class="entry_details" colspan="5">
15397 <p>This defines the maximum distance (in number of metadata results),<wbr/>
15398between <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> and the equivalent
15399<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15400<p>In other words this acts as an upper boundary for how many frames
15401must occur before the camera device knows for a fact that the new
15402submitted camera settings have been applied in outgoing frames.<wbr/></p>
15403<p>For example if the distance was 2,<wbr/></p>
15404<pre><code>initial request = X (repeating)
15405request1 = X
15406request2 = Y
15407request3 = Y
15408request4 = Y
15409
15410where requestN has frameNumber N,<wbr/> and the first of the repeating
15411initial request's has frameNumber F (and F &lt; 1).<wbr/>
15412
15413initial result = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15414result1 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15415result2 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15416result3 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15417result4 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2 }
15418
15419where resultN has frameNumber N.<wbr/>
15420</code></pre>
15421<p>Since <code>result4</code> has a <code>frameNumber == 4</code> and
15422<code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2</code>,<wbr/> the distance is clearly
15423<code>4 - 2 = 2</code>.<wbr/></p>
15424 </td>
15425 </tr>
15426
15427 <tr class="entries_header">
15428 <th class="th_details" colspan="5">HAL Implementation Details</th>
15429 </tr>
15430 <tr class="entry_cont">
15431 <td class="entry_details" colspan="5">
15432 <p>Use <code>frame_<wbr/>count</code> from camera3_<wbr/>request_<wbr/>t instead of
15433<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15434<p>LIMITED devices are strongly encouraged to use a non-negative
15435value.<wbr/> If UNKNOWN is used here then app developers do not have a way
15436to know when sensor settings have been applied.<wbr/></p>
15437 </td>
15438 </tr>
15439
15440 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15441 <!-- end of entry -->
15442
15443
15444
15445 <!-- end of kind -->
15446 </tbody>
15447
15448 <!-- end of section -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015449<!-- </namespace> -->
15450 </table>
15451
15452 <div class="tags" id="tag_index">
15453 <h2>Tags</h2>
15454 <ul>
15455 <li id="tag_AWB">AWB -
15456 Needed for auto white balance
15457
15458 <ul class="tags_entries">
15459 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15460 </ul>
15461 </li> <!-- tag_AWB -->
15462 <li id="tag_BC">BC -
15463 Needed for backwards compatibility with old Java API
15464
15465 <ul class="tags_entries">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -080015466 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015467 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
15468 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
15469 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
15470 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
15471 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015472 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015473 <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
15474 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015475 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015476 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
15477 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15478 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
15479 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
15480 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
15481 <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
15482 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
15483 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -080015484 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015485 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
15486 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
15487 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
15488 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
15489 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
15490 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
15491 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
15492 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
15493 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
15494 <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
15495 <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
15496 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
15497 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
15498 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
15499 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
15500 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
15501 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
15502 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
15503 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
15504 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15505 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15506 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a> (static)</li>
15507 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
15508 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
15509 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
15510 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
15511 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
15512 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
Igor Murashkinf11a4df2013-05-07 10:00:46 -070015513 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015514 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
15515 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
15516 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015517 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015518 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015519 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15520 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15521 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15522 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
15523 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
15524 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
15525 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
15526 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
15527 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
15528 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
15529 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
15530 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
15531 </ul>
15532 </li> <!-- tag_BC -->
15533 <li id="tag_V1">V1 -
15534 New features for first camera 2 release (API1)
15535
15536 <ul class="tags_entries">
15537 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
15538 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
15539 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
15540 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
15541 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
15542 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
15543 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
15544 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
15545 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15546 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
15547 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
15548 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
15549 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15550 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
15551 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li>
15552 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
15553 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
15554 <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li>
15555 <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
15556 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
15557 <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
15558 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
15559 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
15560 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015561 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015562 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
15563 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15564 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15565 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15566 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15567 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li>
15568 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
15569 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
15570 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
15571 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
15572 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
15573 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
15574 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
15575 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
15576 </ul>
15577 </li> <!-- tag_V1 -->
15578 <li id="tag_ADV">ADV - None
15579 <ul class="tags_entries">
15580 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
15581 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
15582 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li>
15583 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li>
15584 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li>
15585 <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
15586 </ul>
15587 </li> <!-- tag_ADV -->
15588 <li id="tag_DNG">DNG -
15589 Needed for DNG file support
15590
15591 <ul class="tags_entries">
15592 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015593 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
15594 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
15595 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15596 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
15597 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
15598 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li>
15599 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li>
15600 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li>
15601 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li>
15602 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li>
15603 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li>
15604 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15605 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li>
15606 </ul>
15607 </li> <!-- tag_DNG -->
15608 <li id="tag_EXIF">EXIF - None
15609 <ul class="tags_entries">
15610 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15611 </ul>
15612 </li> <!-- tag_EXIF -->
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015613 <li id="tag_HAL2">HAL2 -
Alex Rayef40ad62013-10-01 17:52:33 -070015614 Entry is only used by camera device HAL 2.x
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015615
15616 <ul class="tags_entries">
15617 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li>
15618 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li>
15619 <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015620 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015621 </ul>
15622 </li> <!-- tag_HAL2 -->
Alex Rayef40ad62013-10-01 17:52:33 -070015623 <li id="tag_FULL">FULL -
15624 Entry is required for full hardware level devices, and optional for other hardware levels
15625
15626 <ul class="tags_entries">
15627 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15628 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15629 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li>
15630 </ul>
15631 </li> <!-- tag_FULL -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015632 <li id="tag_LIMITED">LIMITED -
15633 Entry assists with LIMITED device implementation. LIMITED devices
15634 must implement all entries with this tag. Optional for FULL devices.
15635
15636 <ul class="tags_entries">
15637 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a> (dynamic)</li>
15638 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a> (static)</li>
15639 </ul>
15640 </li> <!-- tag_LIMITED -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015641 </ul>
15642 </div>
15643
15644 [ <a href="#">top</a> ]
15645
15646</body>
15647</html>