blob: 60013d3920c6661ee0b4bc47302ad86abb7d29d9 [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
1470metering</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001471 </td>
1472
1473 <td class="entry_units">
1474 </td>
1475
1476 <td class="entry_range">
1477 </td>
1478
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001479 <td class="entry_tags">
1480 <ul class="entry_tags">
1481 <li><a href="#tag_BC">BC</a></li>
1482 </ul>
1483 </td>
1484
1485 </tr>
1486 <tr class="entries_header">
1487 <th class="th_details" colspan="5">Details</th>
1488 </tr>
1489 <tr class="entry_cont">
1490 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001491 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
1492xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
1493specified coordinates.<wbr/></p>
1494<p>The coordinate system is based on the active pixel array,<wbr/>
1495with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001496(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1497<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 -08001498bottom-right pixel in the active pixel array.<wbr/> The weight
1499should be nonnegative.<wbr/></p>
1500<p>If all regions have 0 weight,<wbr/> then no specific metering area
1501needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001502outside 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 -08001503should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08001504used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001505 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001506 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001507
1508
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001509 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1510 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001511
1512
1513 <tr class="entry" id="controls_android.control.aeTargetFpsRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001514 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001515 android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001516 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001517 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001518 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001519 <span class="entry_type_container">x</span>
1520
1521 <span class="entry_type_array">
1522 2
1523 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001524 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001525
1526
1527 </td> <!-- entry_type -->
1528
1529 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001530 <p>Range over which fps can be adjusted to
1531maintain exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001532 </td>
1533
1534 <td class="entry_units">
1535 </td>
1536
1537 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001538 <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 -08001539 </td>
1540
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001541 <td class="entry_tags">
1542 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001543 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001544 </ul>
1545 </td>
1546
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001547 </tr>
1548 <tr class="entries_header">
1549 <th class="th_details" colspan="5">Details</th>
1550 </tr>
1551 <tr class="entry_cont">
1552 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001553 <p>Only constrains AE algorithm,<wbr/> not manual control
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001554of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001555 </td>
1556 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001557
1558
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001559 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1560 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001561
1562
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001563 <tr class="entry" id="controls_android.control.aePrecaptureTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001564 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001565 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001566 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001567 <td class="entry_type">
1568 <span class="entry_type_name entry_type_name_enum">byte</span>
1569
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001570 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001571
1572 <ul class="entry_type_enum">
1573 <li>
1574 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001575 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001576 </li>
1577 <li>
1578 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001579 <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
1580by the camera device.<wbr/> The exact effect of the precapture
1581trigger depends on the current AE mode and state.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001582 </li>
1583 </ul>
1584
1585 </td> <!-- entry_type -->
1586
1587 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001588 <p>Whether the camera device will trigger a precapture
1589metering sequence when it processes this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001590 </td>
1591
1592 <td class="entry_units">
1593 </td>
1594
1595 <td class="entry_range">
1596 </td>
1597
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001598 <td class="entry_tags">
1599 <ul class="entry_tags">
1600 <li><a href="#tag_BC">BC</a></li>
1601 </ul>
1602 </td>
1603
1604 </tr>
1605 <tr class="entries_header">
1606 <th class="th_details" colspan="5">Details</th>
1607 </tr>
1608 <tr class="entry_cont">
1609 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001610 <p>This entry is normally set to IDLE,<wbr/> or is not
1611included at all in the request settings.<wbr/> When included and
Zhijun He92e698d2014-01-13 16:24:31 -08001612set to START,<wbr/> the camera device will trigger the autoexposure
Igor Murashkin0b080452013-12-27 15:30:25 -08001613precapture metering sequence.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001614<p>The effect of AE precapture trigger depends on the current
Zhijun He92e698d2014-01-13 16:24:31 -08001615AE mode and state; see <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture
1616state transition details.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001617 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001618 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001619
1620
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001621 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1622 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001623
1624
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001625 <tr class="entry" id="controls_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001626 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001627 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001628 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001629 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001630 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001631
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001632 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001633
1634 <ul class="entry_type_enum">
1635 <li>
1636 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001637 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
1638<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
1639application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001640 </li>
1641 <li>
1642 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001643 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
1644<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
1645is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
1646the autofocus trigger action is called.<wbr/> When that trigger
1647is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
1648the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
1649<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
1650and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001651 </li>
1652 <li>
1653 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001654 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
1655autofocus trigger action is called.<wbr/></p>
1656<p>When that trigger is activated,<wbr/> AF must transition to
1657ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
1658NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
1659position to default,<wbr/> and sets the AF state to
1660INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001661 </li>
1662 <li>
1663 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001664 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1665position continually to attempt to provide a
1666constantly-in-focus image stream.<wbr/></p>
1667<p>The focusing behavior should be suitable for good quality
1668video recording; typically this means slower focus
1669movement and no overshoots.<wbr/> When the AF trigger is not
1670involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
1671and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
1672states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
1673the algorithm should immediately transition into
1674AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1675lens position until a cancel AF trigger is received.<wbr/></p>
1676<p>Once cancel is received,<wbr/> the algorithm should transition
1677back to INACTIVE and resume passive scan.<wbr/> Note that this
1678behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
1679ongoing PASSIVE_<wbr/>SCAN must immediately be
1680canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001681 </li>
1682 <li>
1683 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001684 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1685position continually to attempt to provide a
1686constantly-in-focus image stream.<wbr/></p>
1687<p>The focusing behavior should be suitable for still image
1688capture; typically this means focusing as fast as
1689possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
1690algorithm should start in INACTIVE state,<wbr/> and then
1691transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
1692appropriate as it attempts to maintain focus.<wbr/> When the AF
1693trigger is activated,<wbr/> the algorithm should finish its
1694PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
1695AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1696lens position until a cancel AF trigger is received.<wbr/></p>
1697<p>When the AF cancel trigger is activated,<wbr/> the algorithm
1698should transition back to INACTIVE and then act as if it
1699has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001700 </li>
1701 <li>
1702 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001703 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
1704trigger is ignored,<wbr/> AF state should always be
1705INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001706 </li>
1707 </ul>
1708
1709 </td> <!-- entry_type -->
1710
1711 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001712 <p>Whether AF is currently enabled,<wbr/> and what
1713mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001714 </td>
1715
1716 <td class="entry_units">
1717 </td>
1718
1719 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08001720 <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 -08001721 </td>
1722
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001723 <td class="entry_tags">
1724 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001725 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001726 </ul>
1727 </td>
1728
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001729 </tr>
1730 <tr class="entries_header">
1731 <th class="th_details" colspan="5">Details</th>
1732 </tr>
1733 <tr class="entry_cont">
1734 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001735 <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 -08001736<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
1737the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
1738in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001739 </td>
1740 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001741
1742
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001743 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1744 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001745
1746
1747 <tr class="entry" id="controls_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001748 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001749 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001750 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001751 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001752 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001753 <span class="entry_type_container">x</span>
1754
1755 <span class="entry_type_array">
1756 5 x area_count
1757 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001758 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001759
1760
1761 </td> <!-- entry_type -->
1762
1763 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001764 <p>List of areas to use for focus
1765estimation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001766 </td>
1767
1768 <td class="entry_units">
1769 </td>
1770
1771 <td class="entry_range">
1772 </td>
1773
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001774 <td class="entry_tags">
1775 <ul class="entry_tags">
1776 <li><a href="#tag_BC">BC</a></li>
1777 </ul>
1778 </td>
1779
1780 </tr>
1781 <tr class="entries_header">
1782 <th class="th_details" colspan="5">Details</th>
1783 </tr>
1784 <tr class="entry_cont">
1785 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001786 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
1787xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
1788specified coordinates.<wbr/></p>
1789<p>The coordinate system is based on the active pixel array,<wbr/>
1790with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001791(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1792<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 -08001793bottom-right pixel in the active pixel array.<wbr/> The weight
1794should be nonnegative.<wbr/></p>
1795<p>If all regions have 0 weight,<wbr/> then no specific focus area
1796needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001797outside 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 -08001798should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08001799used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001800 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001801 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001802
1803
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001804 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1805 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001806
1807
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001808 <tr class="entry" id="controls_android.control.afTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001809 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001810 android.<wbr/>control.<wbr/>af<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001811 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001812 <td class="entry_type">
1813 <span class="entry_type_name entry_type_name_enum">byte</span>
1814
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001815 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001816
1817 <ul class="entry_type_enum">
1818 <li>
1819 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001820 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001821 </li>
1822 <li>
1823 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001824 <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001825 </li>
1826 <li>
1827 <span class="entry_type_enum_name">CANCEL</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001828 <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
1829state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001830 </li>
1831 </ul>
1832
1833 </td> <!-- entry_type -->
1834
1835 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001836 <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001837 </td>
1838
1839 <td class="entry_units">
1840 </td>
1841
1842 <td class="entry_range">
1843 </td>
1844
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001845 <td class="entry_tags">
1846 <ul class="entry_tags">
1847 <li><a href="#tag_BC">BC</a></li>
1848 </ul>
1849 </td>
1850
1851 </tr>
1852 <tr class="entries_header">
1853 <th class="th_details" colspan="5">Details</th>
1854 </tr>
1855 <tr class="entry_cont">
1856 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001857 <p>This entry is normally set to IDLE,<wbr/> or is not
1858included at all in the request settings.<wbr/></p>
Zhijun He92e698d2014-01-13 16:24:31 -08001859<p>When included and set to START,<wbr/> the camera device will trigger the
1860autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
1861<p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
1862and return to its initial AF state.<wbr/></p>
1863<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 -07001864 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001865 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001866
1867
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001868 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1869 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001870
1871
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001872 <tr class="entry" id="controls_android.control.awbLock">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001873 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001874 android.<wbr/>control.<wbr/>awb<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001875 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001876 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001877 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001878
Igor Murashkinb8dc8812013-07-17 16:29:34 -07001879 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001880
1881 <ul class="entry_type_enum">
1882 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001883 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001884 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is disabled; the AWB
1885algorithm is free to update its parameters if in AUTO
1886mode.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001887 </li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001888 <li>
1889 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001890 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is enabled; the AWB
1891algorithm must not update the exposure and sensitivity
1892parameters while the lock is active</p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001893 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001894 </ul>
1895
1896 </td> <!-- entry_type -->
1897
1898 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001899 <p>Whether AWB is currently locked to its
1900latest calculated values</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001901 </td>
1902
1903 <td class="entry_units">
1904 </td>
1905
1906 <td class="entry_range">
1907 </td>
1908
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001909 <td class="entry_tags">
1910 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001911 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001912 </ul>
1913 </td>
1914
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001915 </tr>
1916 <tr class="entries_header">
1917 <th class="th_details" colspan="5">Details</th>
1918 </tr>
1919 <tr class="entry_cont">
1920 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001921 <p>Note that AWB lock is only meaningful for AUTO
1922mode; in other modes,<wbr/> AWB is already fixed to a specific
1923setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001924 </td>
1925 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001926
1927
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001928 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1929 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001930
1931
1932 <tr class="entry" id="controls_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001933 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001934 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001935 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001936 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001937 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001938
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001939 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001940
1941 <ul class="entry_type_enum">
1942 <li>
1943 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001944 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1945the application-selected color transform matrix
1946(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
1947(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
1948device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001949 </li>
1950 <li>
1951 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001952 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
1953the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
1954and <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 -08001955 </li>
1956 <li>
1957 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001958 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1959the camera device uses incandescent light as the assumed scene
1960illumination for white balance.<wbr/> While the exact white balance
1961transforms are up to the camera device,<wbr/> they will approximately
1962match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001963 </li>
1964 <li>
1965 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001966 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1967the camera device uses fluorescent light as the assumed scene
1968illumination for white balance.<wbr/> While the exact white balance
1969transforms are up to the camera device,<wbr/> they will approximately
1970match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001971 </li>
1972 <li>
1973 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001974 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1975the camera device uses warm fluorescent light as the assumed scene
1976illumination for white balance.<wbr/> While the exact white balance
1977transforms are up to the camera device,<wbr/> they will approximately
1978match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001979 </li>
1980 <li>
1981 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001982 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1983the camera device uses daylight light as the assumed scene
1984illumination for white balance.<wbr/> While the exact white balance
1985transforms are up to the camera device,<wbr/> they will approximately
1986match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001987 </li>
1988 <li>
1989 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001990 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1991the camera device uses cloudy daylight light as the assumed scene
1992illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001993 </li>
1994 <li>
1995 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001996 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1997the camera device uses twilight light as the assumed scene
1998illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001999 </li>
2000 <li>
2001 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002002 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2003the camera device uses shade light as the assumed scene
2004illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002005 </li>
2006 </ul>
2007
2008 </td> <!-- entry_type -->
2009
2010 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002011 <p>Whether AWB is currently setting the color
2012transform fields,<wbr/> and what its illumination target
2013is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002014 </td>
2015
2016 <td class="entry_units">
2017 </td>
2018
2019 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08002020 <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 -08002021 </td>
2022
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002023 <td class="entry_tags">
2024 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002025 <li><a href="#tag_BC">BC</a></li>
2026 <li><a href="#tag_AWB">AWB</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002027 </ul>
2028 </td>
2029
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002030 </tr>
2031 <tr class="entries_header">
2032 <th class="th_details" colspan="5">Details</th>
2033 </tr>
2034 <tr class="entry_cont">
2035 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08002036 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
2037<p>When set to the ON mode,<wbr/> the camera device's auto white balance
2038routine is enabled,<wbr/> overriding the application's selected
2039<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
2040<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2041<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
2042routine is disabled.<wbr/> The applicantion manually controls the white
2043balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
2044and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2045<p>When set to any other modes,<wbr/> the camera device's auto white balance
2046routine is disabled.<wbr/> The camera device uses each particular illumination
2047target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002048 </td>
2049 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002050
2051
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002052 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2053 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002054
2055
2056 <tr class="entry" id="controls_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002057 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002058 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002059 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002060 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002061 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002062 <span class="entry_type_container">x</span>
2063
2064 <span class="entry_type_array">
2065 5 x area_count
2066 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002067 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002068
2069
2070 </td> <!-- entry_type -->
2071
2072 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002073 <p>List of areas to use for illuminant
2074estimation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002075 </td>
2076
2077 <td class="entry_units">
2078 </td>
2079
2080 <td class="entry_range">
2081 </td>
2082
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002083 <td class="entry_tags">
2084 <ul class="entry_tags">
2085 <li><a href="#tag_BC">BC</a></li>
2086 </ul>
2087 </td>
2088
2089 </tr>
2090 <tr class="entries_header">
2091 <th class="th_details" colspan="5">Details</th>
2092 </tr>
2093 <tr class="entry_cont">
2094 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002095 <p>Only used in AUTO mode.<wbr/></p>
2096<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
2097xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
2098specified coordinates.<wbr/></p>
2099<p>The coordinate system is based on the active pixel array,<wbr/>
2100with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002101(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
2102<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 -08002103bottom-right pixel in the active pixel array.<wbr/> The weight
2104should be nonnegative.<wbr/></p>
2105<p>If all regions have 0 weight,<wbr/> then no specific metering area
2106needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002107outside 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 -08002108should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08002109used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002110 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002111 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002112
2113
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002114 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2115 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002116
2117
2118 <tr class="entry" id="controls_android.control.captureIntent">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002119 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002120 android.<wbr/>control.<wbr/>capture<wbr/>Intent
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002121 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002122 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002123 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002124
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002125 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002126
2127 <ul class="entry_type_enum">
2128 <li>
2129 <span class="entry_type_enum_name">CUSTOM</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002130 <span class="entry_type_enum_notes"><p>This request doesn't fall into the other
2131categories.<wbr/> Default to preview-like
2132behavior.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002133 </li>
2134 <li>
2135 <span class="entry_type_enum_name">PREVIEW</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002136 <span class="entry_type_enum_notes"><p>This request is for a preview-like usecase.<wbr/> The
2137precapture trigger may be used to start off a metering
2138w/<wbr/>flash sequence</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002139 </li>
2140 <li>
2141 <span class="entry_type_enum_name">STILL_CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002142 <span class="entry_type_enum_notes"><p>This request is for a still capture-type
2143usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002144 </li>
2145 <li>
2146 <span class="entry_type_enum_name">VIDEO_RECORD</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002147 <span class="entry_type_enum_notes"><p>This request is for a video recording
2148usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002149 </li>
2150 <li>
2151 <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002152 <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
2153image while recording video) usecase</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002154 </li>
2155 <li>
2156 <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002157 <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
2158application will stream full-resolution images and
2159reprocess one or several later for a final
2160capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002161 </li>
2162 </ul>
2163
2164 </td> <!-- entry_type -->
2165
2166 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08002167 <p>Information to the camera device 3A (auto-exposure,<wbr/>
2168auto-focus,<wbr/> auto-white balance) routines about the purpose
2169of this capture,<wbr/> to help the camera device to decide optimal 3A
2170strategy.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002171 </td>
2172
2173 <td class="entry_units">
2174 </td>
2175
2176 <td class="entry_range">
Zhijun Heea27bc32014-01-15 13:47:59 -08002177 <p>All must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002178 </td>
2179
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002180 <td class="entry_tags">
2181 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002182 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002183 </ul>
2184 </td>
2185
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002186 </tr>
2187 <tr class="entries_header">
2188 <th class="th_details" colspan="5">Details</th>
2189 </tr>
2190 <tr class="entry_cont">
2191 <td class="entry_details" colspan="5">
Zhijun Heea27bc32014-01-15 13:47:59 -08002192 <p>This control is only effective if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code>
2193and any 3A routine is active.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002194 </td>
2195 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002196
2197
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002198 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2199 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002200
2201
2202 <tr class="entry" id="controls_android.control.effectMode">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002203 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002204 android.<wbr/>control.<wbr/>effect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002205 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002206 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002207 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002208
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002209 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002210
2211 <ul class="entry_type_enum">
2212 <li>
2213 <span class="entry_type_enum_name">OFF</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002214 <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002215 </li>
2216 <li>
2217 <span class="entry_type_enum_name">MONO</span>
2218 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002219 <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
2220a single color.<wbr/> This will typically be grayscale.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002221 </li>
2222 <li>
2223 <span class="entry_type_enum_name">NEGATIVE</span>
2224 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002225 <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
2226are inverted.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002227 </li>
2228 <li>
2229 <span class="entry_type_enum_name">SOLARIZE</span>
2230 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002231 <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
2232image is wholly or partially reversed in
2233tone.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002234 </li>
2235 <li>
2236 <span class="entry_type_enum_name">SEPIA</span>
2237 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002238 <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
2239gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002240 </li>
2241 <li>
2242 <span class="entry_type_enum_name">POSTERIZE</span>
2243 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002244 <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
2245discrete regions of tone rather than a continuous
2246gradient of tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002247 </li>
2248 <li>
2249 <span class="entry_type_enum_name">WHITEBOARD</span>
2250 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002251 <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
2252as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002253 </li>
2254 <li>
2255 <span class="entry_type_enum_name">BLACKBOARD</span>
2256 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002257 <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
2258as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002259 </li>
2260 <li>
2261 <span class="entry_type_enum_name">AQUA</span>
2262 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002263 <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 -08002264 </li>
2265 </ul>
2266
2267 </td> <!-- entry_type -->
2268
2269 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002270 <p>A special color effect to apply.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002271 </td>
2272
2273 <td class="entry_units">
2274 </td>
2275
2276 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002277 <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002278 </td>
2279
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002280 <td class="entry_tags">
2281 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002282 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002283 </ul>
2284 </td>
2285
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002286 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002287 <tr class="entries_header">
2288 <th class="th_details" colspan="5">Details</th>
2289 </tr>
2290 <tr class="entry_cont">
2291 <td class="entry_details" colspan="5">
2292 <p>When this mode is set,<wbr/> a color effect will be applied
2293to images produced by the camera device.<wbr/> The interpretation
2294and implementation of these color effects is left to the
2295implementor of the camera device,<wbr/> and should not be
2296depended on to be consistent (or present) across all
2297devices.<wbr/></p>
2298<p>A color effect will only be applied if
2299<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2300 </td>
2301 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002302
2303
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002304 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2305 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002306
2307
2308 <tr class="entry" id="controls_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002309 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002310 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002311 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002312 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002313 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002314
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002315 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002316
2317 <ul class="entry_type_enum">
2318 <li>
2319 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002320 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
2321routines are disabled,<wbr/> no other settings in
2322android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002323 </li>
2324 <li>
2325 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002326 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
2327Manual control of capture parameters is disabled.<wbr/> All
2328controls in android.<wbr/>control.<wbr/>* besides sceneMode take
2329effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002330 </li>
2331 <li>
2332 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002333 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
2334control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
2335controls; the HAL must ignore those settings while
2336USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
2337scene mode).<wbr/> Other control entries are still active.<wbr/>
2338This setting can only be used if availableSceneModes !=
2339UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002340 </li>
2341 </ul>
2342
2343 </td> <!-- entry_type -->
2344
2345 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002346 <p>Overall mode of 3A control
2347routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002348 </td>
2349
2350 <td class="entry_units">
2351 </td>
2352
2353 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002354 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002355 </td>
2356
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002357 <td class="entry_tags">
2358 <ul class="entry_tags">
2359 <li><a href="#tag_BC">BC</a></li>
2360 </ul>
2361 </td>
2362
2363 </tr>
2364 <tr class="entries_header">
2365 <th class="th_details" colspan="5">Details</th>
2366 </tr>
2367 <tr class="entry_cont">
2368 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002369 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002370by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08002371capture parameters itself.<wbr/></p>
2372<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002373android.<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 -08002374<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002375android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08002376one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002377as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002378<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 -08002379 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002380 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002381
2382
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002383 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2384 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002385
2386
2387 <tr class="entry" id="controls_android.control.sceneMode">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002388 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002389 android.<wbr/>control.<wbr/>scene<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002390 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002391 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002392 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002393
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002394 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002395
2396 <ul class="entry_type_enum">
2397 <li>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002398 <span class="entry_type_enum_name">DISABLED</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002399 <span class="entry_type_enum_value">0</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002400 <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 -08002401 </li>
2402 <li>
2403 <span class="entry_type_enum_name">FACE_PRIORITY</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002404 <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
2405detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
2406auto-exposure routines.<wbr/> If face detection statistics are
2407disabled (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/>
2408this should still operate correctly (but will not return
2409face detection statistics to the framework).<wbr/></p>
2410<p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2411<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and android.<wbr/>control.<wbr/>af<wbr/>Mode
2412remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002413 </li>
2414 <li>
2415 <span class="entry_type_enum_name">ACTION</span>
2416 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002417 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/>
2418Similar to SPORTS.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002419 </li>
2420 <li>
2421 <span class="entry_type_enum_name">PORTRAIT</span>
2422 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002423 <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002424 </li>
2425 <li>
2426 <span class="entry_type_enum_name">LANDSCAPE</span>
2427 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002428 <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002429 </li>
2430 <li>
2431 <span class="entry_type_enum_name">NIGHT</span>
2432 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002433 <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002434 </li>
2435 <li>
2436 <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
2437 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002438 <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
2439settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002440 </li>
2441 <li>
2442 <span class="entry_type_enum_name">THEATRE</span>
2443 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002444 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
2445remain off.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002446 </li>
2447 <li>
2448 <span class="entry_type_enum_name">BEACH</span>
2449 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002450 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002451 </li>
2452 <li>
2453 <span class="entry_type_enum_name">SNOW</span>
2454 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002455 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002456 </li>
2457 <li>
2458 <span class="entry_type_enum_name">SUNSET</span>
2459 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002460 <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002461 </li>
2462 <li>
2463 <span class="entry_type_enum_name">STEADYPHOTO</span>
2464 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002465 <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
2466device motion (for example: due to hand shake).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002467 </li>
2468 <li>
2469 <span class="entry_type_enum_name">FIREWORKS</span>
2470 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002471 <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002472 </li>
2473 <li>
2474 <span class="entry_type_enum_name">SPORTS</span>
2475 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002476 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/>
2477Similar to ACTION.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002478 </li>
2479 <li>
2480 <span class="entry_type_enum_name">PARTY</span>
2481 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002482 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
2483people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002484 </li>
2485 <li>
2486 <span class="entry_type_enum_name">CANDLELIGHT</span>
2487 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002488 <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
2489is a flame.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002490 </li>
2491 <li>
2492 <span class="entry_type_enum_name">BARCODE</span>
2493 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002494 <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
2495for use by camera applications that wish to read the
2496barcode value.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002497 </li>
2498 </ul>
2499
2500 </td> <!-- entry_type -->
2501
2502 <td class="entry_description">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002503 <p>A camera mode optimized for conditions typical in a particular
2504capture setting.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002505 </td>
2506
2507 <td class="entry_units">
2508 </td>
2509
2510 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002511 <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 -08002512 </td>
2513
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002514 <td class="entry_tags">
2515 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002516 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002517 </ul>
2518 </td>
2519
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002520 </tr>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002521 <tr class="entries_header">
2522 <th class="th_details" colspan="5">Details</th>
2523 </tr>
2524 <tr class="entry_cont">
2525 <td class="entry_details" colspan="5">
2526 <p>This is the mode that that is active when
2527<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/>
2528these modes will disable <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2529<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>
2530<p>The interpretation and implementation of these scene modes is left
2531to the implementor of the camera device.<wbr/> Their behavior will not be
2532consistent across all devices,<wbr/> and any given device may only implement
2533a subset of these modes.<wbr/></p>
2534 </td>
2535 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002536
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002537 <tr class="entries_header">
2538 <th class="th_details" colspan="5">HAL Implementation Details</th>
2539 </tr>
2540 <tr class="entry_cont">
2541 <td class="entry_details" colspan="5">
2542 <p>HAL implementations that include scene modes are expected to provide
2543the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2544<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
2545<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
2546 </td>
2547 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002548
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002549 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2550 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002551
2552
2553 <tr class="entry" id="controls_android.control.videoStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002554 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002555 android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002556 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002557 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002558 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002559
Igor Murashkinb8dc8812013-07-17 16:29:34 -07002560 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002561
2562 <ul class="entry_type_enum">
2563 <li>
2564 <span class="entry_type_enum_name">OFF</span>
2565 </li>
2566 <li>
2567 <span class="entry_type_enum_name">ON</span>
2568 </li>
2569 </ul>
2570
2571 </td> <!-- entry_type -->
2572
2573 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002574 <p>Whether video stabilization is
2575active</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002576 </td>
2577
2578 <td class="entry_units">
2579 </td>
2580
2581 <td class="entry_range">
2582 </td>
2583
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002584 <td class="entry_tags">
2585 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002586 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002587 </ul>
2588 </td>
2589
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002590 </tr>
2591 <tr class="entries_header">
2592 <th class="th_details" colspan="5">Details</th>
2593 </tr>
2594 <tr class="entry_cont">
2595 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002596 <p>If enabled,<wbr/> video stabilization can modify the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002597<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 -08002598stabilized</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002599 </td>
2600 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002601
2602
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002603 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2604 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002605
2606
2607
2608 <!-- end of kind -->
2609 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002610 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002611
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002612 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002613 <tr>
2614 <th class="th_name">Property Name</th>
2615 <th class="th_type">Type</th>
2616 <th class="th_description">Description</th>
2617 <th class="th_units">Units</th>
2618 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002619 <th class="th_tags">Tags</th>
2620 </tr>
2621 </thead>
2622
2623 <tbody>
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634 <tr class="entry" id="static_android.control.aeAvailableAntibandingModes">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002635 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002636 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002637 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002638 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002639 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002640 <span class="entry_type_container">x</span>
2641
2642 <span class="entry_type_array">
2643 n
2644 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002645 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002646 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002647
2648
2649 </td> <!-- entry_type -->
2650
2651 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002652 <p>The set of auto-exposure antibanding modes that are
2653supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002654 </td>
2655
2656 <td class="entry_units">
2657 </td>
2658
2659 <td class="entry_range">
2660 </td>
2661
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002662 <td class="entry_tags">
2663 </td>
2664
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002665 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002666 <tr class="entries_header">
2667 <th class="th_details" colspan="5">Details</th>
2668 </tr>
2669 <tr class="entry_cont">
2670 <td class="entry_details" colspan="5">
2671 <p>Not all of the auto-exposure anti-banding modes may be
2672supported by a given camera device.<wbr/> This field lists the
2673valid anti-banding modes that the application may request
2674for this camera device; they must include AUTO.<wbr/></p>
2675 </td>
2676 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002677
2678
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002679 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2680 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002681
2682
2683 <tr class="entry" id="static_android.control.aeAvailableModes">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002684 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002685 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002686 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002687 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002688 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002689 <span class="entry_type_container">x</span>
2690
2691 <span class="entry_type_array">
2692 n
2693 </span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002694 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002695 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002696
2697
2698 </td> <!-- entry_type -->
2699
2700 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002701 <p>The set of auto-exposure modes that are supported by this
2702camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002703 </td>
2704
2705 <td class="entry_units">
2706 </td>
2707
2708 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002709 </td>
2710
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002711 <td class="entry_tags">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002712 <ul class="entry_tags">
2713 <li><a href="#tag_BC">BC</a></li>
2714 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002715 </td>
2716
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002717 </tr>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002718 <tr class="entries_header">
2719 <th class="th_details" colspan="5">Details</th>
2720 </tr>
2721 <tr class="entry_cont">
2722 <td class="entry_details" colspan="5">
2723 <p>Not all the auto-exposure modes may be supported by a
2724given camera device,<wbr/> especially if no flash unit is
2725available.<wbr/> This entry lists the valid modes for
2726<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> for this camera device.<wbr/></p>
2727<p>All camera devices support ON,<wbr/> and all camera devices with
2728flash units support ON_<wbr/>AUTO_<wbr/>FLASH and
2729ON_<wbr/>ALWAYS_<wbr/>FLASH.<wbr/></p>
2730<p>Full-capability camera devices always support OFF mode,<wbr/>
2731which enables application control of camera exposure time,<wbr/>
2732sensitivity,<wbr/> and frame duration.<wbr/></p>
2733 </td>
2734 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002735
2736
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002737 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2738 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002739
2740
2741 <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002742 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002743 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002744 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002745 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002746 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002747 <span class="entry_type_container">x</span>
2748
2749 <span class="entry_type_array">
2750 2 x n
2751 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002752 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002753 <div class="entry_type_notes">list of pairs of frame rates</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002754
2755
2756 </td> <!-- entry_type -->
2757
2758 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002759 <p>List of frame rate ranges supported by the
2760AE algorithm/<wbr/>hardware</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002761 </td>
2762
2763 <td class="entry_units">
2764 </td>
2765
2766 <td class="entry_range">
2767 </td>
2768
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002769 <td class="entry_tags">
2770 </td>
2771
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002772 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002773
2774
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002775 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2776 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002777
2778
2779 <tr class="entry" id="static_android.control.aeCompensationRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002780 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002781 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002782 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002783 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002784 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002785 <span class="entry_type_container">x</span>
2786
2787 <span class="entry_type_array">
2788 2
2789 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002790 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002791
2792
2793 </td> <!-- entry_type -->
2794
2795 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002796 <p>Maximum and minimum exposure compensation
2797setting,<wbr/> in counts of
2798android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step<wbr/>Size</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002799 </td>
2800
2801 <td class="entry_units">
2802 </td>
2803
2804 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002805 <p>At least (-2,<wbr/>2)/<wbr/>(exp compensation step
2806size)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002807 </td>
2808
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002809 <td class="entry_tags">
2810 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002811 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002812 </ul>
2813 </td>
2814
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002815 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002816
2817
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002818 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2819 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002820
2821
2822 <tr class="entry" id="static_android.control.aeCompensationStep">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002823 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002824 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002825 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002826 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002827 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002828
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002829 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002830
2831
2832 </td> <!-- entry_type -->
2833
2834 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002835 <p>Smallest step by which exposure compensation
2836can be changed</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002837 </td>
2838
2839 <td class="entry_units">
2840 </td>
2841
2842 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002843 <p>&lt;= 1/<wbr/>2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002844 </td>
2845
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002846 <td class="entry_tags">
2847 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002848 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002849 </ul>
2850 </td>
2851
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002852 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002853
2854
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002855 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2856 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002857
2858
2859 <tr class="entry" id="static_android.control.afAvailableModes">
Zhijun Hef163fa92014-01-14 09:59:04 -08002860 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002861 android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002862 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002863 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002864 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002865 <span class="entry_type_container">x</span>
2866
2867 <span class="entry_type_array">
2868 n
2869 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002870 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002871 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002872
2873
2874 </td> <!-- entry_type -->
2875
2876 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002877 <p>List of AF modes that can be
Zhijun Hef163fa92014-01-14 09:59:04 -08002878selected with <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002879 </td>
2880
2881 <td class="entry_units">
2882 </td>
2883
2884 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002885 </td>
2886
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002887 <td class="entry_tags">
2888 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002889 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002890 </ul>
2891 </td>
2892
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002893 </tr>
Zhijun Hef163fa92014-01-14 09:59:04 -08002894 <tr class="entries_header">
2895 <th class="th_details" colspan="5">Details</th>
2896 </tr>
2897 <tr class="entry_cont">
2898 <td class="entry_details" colspan="5">
2899 <p>Not all the auto-focus modes may be supported by a
2900given camera device.<wbr/> This entry lists the valid modes for
2901<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> for this camera device.<wbr/></p>
2902<p>All camera devices will support OFF mode,<wbr/> and all camera devices with
2903adjustable 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>)
2904will support AUTO mode.<wbr/></p>
2905 </td>
2906 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002907
2908
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002909 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2910 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002911
2912
2913 <tr class="entry" id="static_android.control.availableEffects">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002914 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002915 android.<wbr/>control.<wbr/>available<wbr/>Effects
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002916 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002917 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002918 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002919 <span class="entry_type_container">x</span>
2920
2921 <span class="entry_type_array">
2922 n
2923 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002924 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002925 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>effect<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002926
2927
2928 </td> <!-- entry_type -->
2929
2930 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002931 <p>List containing the subset of color effects
2932specified in <a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a> that is supported by
2933this device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002934 </td>
2935
2936 <td class="entry_units">
2937 </td>
2938
2939 <td class="entry_range">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002940 <p>Any subset of enums from those specified in
2941<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 -08002942 </td>
2943
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002944 <td class="entry_tags">
2945 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002946 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002947 </ul>
2948 </td>
2949
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002950 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002951 <tr class="entries_header">
2952 <th class="th_details" colspan="5">Details</th>
2953 </tr>
2954 <tr class="entry_cont">
2955 <td class="entry_details" colspan="5">
2956 <p>This list contains the color effect modes that can be applied to
2957images produced by the camera device.<wbr/> Only modes that have
2958been fully implemented for the current device may be included here.<wbr/>
2959Implementations are not expected to be consistent across all devices.<wbr/>
2960If no color effect modes are available for a device,<wbr/> this should
2961simply be set to OFF.<wbr/></p>
2962<p>A color effect will only be applied if
2963<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2964 </td>
2965 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002966
2967
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002968 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2969 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002970
2971
2972 <tr class="entry" id="static_android.control.availableSceneModes">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002973 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002974 android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002975 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002976 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002977 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002978 <span class="entry_type_container">x</span>
2979
2980 <span class="entry_type_array">
2981 n
2982 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002983 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002984 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>scene<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002985
2986
2987 </td> <!-- entry_type -->
2988
2989 <td class="entry_description">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002990 <p>List containing a subset of scene modes
2991specified in <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002992 </td>
2993
2994 <td class="entry_units">
2995 </td>
2996
2997 <td class="entry_range">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002998 <p>Any subset of the enums specified in android.<wbr/>control.<wbr/>scene<wbr/>Mode
2999not including DISABLED,<wbr/> or solely DISABLED if no
3000scene modes are available.<wbr/> FACE_<wbr/>PRIORITY must be included
3001if 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 -08003002 </td>
3003
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003004 <td class="entry_tags">
3005 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003006 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003007 </ul>
3008 </td>
3009
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003010 </tr>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003011 <tr class="entries_header">
3012 <th class="th_details" colspan="5">Details</th>
3013 </tr>
3014 <tr class="entry_cont">
3015 <td class="entry_details" colspan="5">
3016 <p>This list contains scene modes that can be set for the camera device.<wbr/>
3017Only scene modes that have been fully implemented for the
3018camera device may be included here.<wbr/> Implementations are not expected
3019to be consistent across all devices.<wbr/> If no scene modes are supported
3020by the camera device,<wbr/> this will be set to <code>[DISABLED]</code>.<wbr/></p>
3021 </td>
3022 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003023
3024
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003025 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3026 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003027
3028
3029 <tr class="entry" id="static_android.control.availableVideoStabilizationModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003030 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003031 android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003032 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003033 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003034 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003035 <span class="entry_type_container">x</span>
3036
3037 <span class="entry_type_array">
3038 n
3039 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003040 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08003041 <div class="entry_type_notes">List of enums.<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003042
3043
3044 </td> <!-- entry_type -->
3045
3046 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003047 <p>List of video stabilization modes that can
3048be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003049 </td>
3050
3051 <td class="entry_units">
3052 </td>
3053
3054 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003055 <p>OFF must be included</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003056 </td>
3057
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003058 <td class="entry_tags">
3059 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003060 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003061 </ul>
3062 </td>
3063
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003064 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003065
3066
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003067 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3068 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003069
3070
3071 <tr class="entry" id="static_android.control.awbAvailableModes">
Zhijun He7787f7f2014-01-14 16:30:31 -08003072 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003073 android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003074 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003075 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003076 <span class="entry_type_name">byte</span>
Alex Raya4251d92013-04-30 16:43:44 -07003077 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003078
Alex Raya4251d92013-04-30 16:43:44 -07003079 <span class="entry_type_array">
3080 n
3081 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003082 <span class="entry_type_visibility"> [public]</span>
Zhijun He7787f7f2014-01-14 16:30:31 -08003083 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003084
3085
3086 </td> <!-- entry_type -->
3087
3088 <td class="entry_description">
Zhijun He7787f7f2014-01-14 16:30:31 -08003089 <p>The set of auto-white-balance modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>)
3090that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003091 </td>
3092
3093 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003094 </td>
3095
3096 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003097 </td>
3098
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003099 <td class="entry_tags">
3100 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003101 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003102 </ul>
3103 </td>
3104
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003105 </tr>
Zhijun He7787f7f2014-01-14 16:30:31 -08003106 <tr class="entries_header">
3107 <th class="th_details" colspan="5">Details</th>
3108 </tr>
3109 <tr class="entry_cont">
3110 <td class="entry_details" colspan="5">
3111 <p>Not all the auto-white-balance modes may be supported by a
3112given camera device.<wbr/> This entry lists the valid modes for
3113<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> for this camera device.<wbr/></p>
3114<p>All camera devices will support ON mode.<wbr/></p>
3115<p>Full-capability camera devices will always support OFF mode,<wbr/>
3116which enables application control of white balance,<wbr/> by using
3117<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>
3118 </td>
3119 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003120
3121
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003122 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3123 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003124
3125
3126 <tr class="entry" id="static_android.control.maxRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003127 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003128 android.<wbr/>control.<wbr/>max<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003129 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003130 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003131 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003132
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003133 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003134
3135
3136 </td> <!-- entry_type -->
3137
3138 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003139 <p>For AE,<wbr/> AWB,<wbr/> and AF,<wbr/> how many individual
3140regions can be listed for metering?</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003141 </td>
3142
3143 <td class="entry_units">
3144 </td>
3145
3146 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08003147 <p>&gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003148 </td>
3149
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003150 <td class="entry_tags">
3151 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003152 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003153 </ul>
3154 </td>
3155
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003156 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003157
3158
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003159 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3160 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003161
3162
3163 <tr class="entry" id="static_android.control.sceneModeOverrides">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003164 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003165 android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003166 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003167 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003168 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003169 <span class="entry_type_container">x</span>
3170
3171 <span class="entry_type_array">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003172 3 x length(availableSceneModes)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003173 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003174 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003175
3176
3177 </td> <!-- entry_type -->
3178
3179 <td class="entry_description">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003180 <p>Ordered list of auto-exposure,<wbr/> auto-white balance,<wbr/> and auto-focus
3181settings to use with each available scene mode.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003182 </td>
3183
3184 <td class="entry_units">
3185 </td>
3186
3187 <td class="entry_range">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003188 <p>For each available scene mode,<wbr/> the list must contain three
3189entries containing the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3190<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
3191by the camera device.<wbr/> The entry order is <code>(aeMode,<wbr/> awbMode,<wbr/> afMode)</code>
3192where aeMode has the lowest index position.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003193 </td>
3194
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003195 <td class="entry_tags">
3196 <ul class="entry_tags">
3197 <li><a href="#tag_BC">BC</a></li>
3198 </ul>
3199 </td>
3200
3201 </tr>
3202 <tr class="entries_header">
3203 <th class="th_details" colspan="5">Details</th>
3204 </tr>
3205 <tr class="entry_cont">
3206 <td class="entry_details" colspan="5">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003207 <p>When a scene mode is enabled,<wbr/> the camera device is expected
3208to 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/>
3209and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> with its preferred settings for
3210that scene mode.<wbr/></p>
3211<p>The order of this list matches that of availableSceneModes,<wbr/>
3212with 3 entries for each mode.<wbr/> The overrides listed
3213for FACE_<wbr/>PRIORITY are ignored,<wbr/> since for that
3214mode the application-set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3215<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
3216used instead,<wbr/> matching the behavior when android.<wbr/>control.<wbr/>mode
3217is set to AUTO.<wbr/> It is recommended that the FACE_<wbr/>PRIORITY
3218overrides should be set to 0.<wbr/></p>
3219<p>For example,<wbr/> if availableSceneModes contains
3220<code>(FACE_<wbr/>PRIORITY,<wbr/> ACTION,<wbr/> NIGHT)</code>,<wbr/> then the camera framework
3221expects sceneModeOverrides to have 9 entries formatted like:
3222<code>(0,<wbr/> 0,<wbr/> 0,<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> AUTO,<wbr/> CONTINUOUS_<wbr/>PICTURE,<wbr/>
3223ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> INCANDESCENT,<wbr/> AUTO)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003224 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003225 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003226
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003227 <tr class="entries_header">
3228 <th class="th_details" colspan="5">HAL Implementation Details</th>
3229 </tr>
3230 <tr class="entry_cont">
3231 <td class="entry_details" colspan="5">
3232 <p>To maintain backward compatibility,<wbr/> this list will be made available
3233in the static metadata of the camera service.<wbr/> The camera service will
3234use these values to set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3235<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> when using a scene
3236mode other than FACE_<wbr/>PRIORITY.<wbr/></p>
3237 </td>
3238 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003239
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003240 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3241 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003242
3243
3244
3245 <!-- end of kind -->
3246 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003247 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003248
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003249 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003250 <tr>
3251 <th class="th_name">Property Name</th>
3252 <th class="th_type">Type</th>
3253 <th class="th_description">Description</th>
3254 <th class="th_units">Units</th>
3255 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003256 <th class="th_tags">Tags</th>
3257 </tr>
3258 </thead>
3259
3260 <tbody>
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271 <tr class="entry" id="dynamic_android.control.aePrecaptureId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003272 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003273 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003274 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003275 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003276 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003277
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003278 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003279
3280
3281 </td> <!-- entry_type -->
3282
3283 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003284 <p>The ID sent with the latest
3285CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003286 </td>
3287
3288 <td class="entry_units">
3289 </td>
3290
3291 <td class="entry_range">
3292 </td>
3293
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003294 <td class="entry_tags">
3295 </td>
3296
3297 </tr>
3298 <tr class="entries_header">
3299 <th class="th_details" colspan="5">Details</th>
3300 </tr>
3301 <tr class="entry_cont">
3302 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003303 <p>Must be 0 if no
3304CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING trigger received yet
3305by HAL.<wbr/> Always updated even if AE algorithm ignores the
3306trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003307 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003308 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003309
3310
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003311 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3312 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003313
3314
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003315 <tr class="entry" id="dynamic_android.control.aeMode">
3316 <td class="entry_name" rowspan="3">
3317 android.<wbr/>control.<wbr/>ae<wbr/>Mode
3318 </td>
3319 <td class="entry_type">
3320 <span class="entry_type_name entry_type_name_enum">byte</span>
3321
3322 <span class="entry_type_visibility"> [public]</span>
3323
3324 <ul class="entry_type_enum">
3325 <li>
3326 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003327 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
3328the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3329<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
3330<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
3331device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
3332a flash unit for this camera device.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003333 </li>
3334 <li>
3335 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003336 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
3337with no flash control.<wbr/> The application's values for
3338<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3339<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3340<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
3341application has control over the various
3342android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003343 </li>
3344 <li>
3345 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003346 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3347the camera's flash unit,<wbr/> firing it in low-light
3348conditions.<wbr/> The flash may be fired during a
3349precapture sequence (triggered by
3350<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
3351for captures for which the
3352<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3353STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003354 </li>
3355 <li>
3356 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003357 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3358the camera's flash unit,<wbr/> always firing it for still
3359captures.<wbr/> The flash may be fired during a precapture
3360sequence (triggered by
3361<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
3362be fired for captures for which the
3363<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3364STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003365 </li>
3366 <li>
3367 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003368 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
3369reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
3370a red eye reduction flash will fire during the
3371precapture sequence.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003372 </li>
3373 </ul>
3374
3375 </td> <!-- entry_type -->
3376
3377 <td class="entry_description">
3378 <p>The desired mode for the camera device's
3379auto-exposure routine.<wbr/></p>
3380 </td>
3381
3382 <td class="entry_units">
3383 </td>
3384
3385 <td class="entry_range">
3386 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
3387 </td>
3388
3389 <td class="entry_tags">
3390 <ul class="entry_tags">
3391 <li><a href="#tag_BC">BC</a></li>
3392 </ul>
3393 </td>
3394
3395 </tr>
3396 <tr class="entries_header">
3397 <th class="th_details" colspan="5">Details</th>
3398 </tr>
3399 <tr class="entry_cont">
3400 <td class="entry_details" colspan="5">
3401 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
3402AUTO.<wbr/></p>
3403<p>When set to any of the ON modes,<wbr/> the camera device's
3404auto-exposure routine is enabled,<wbr/> overriding the
3405application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
3406and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3407<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3408<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
3409is selected,<wbr/> the camera device's flash unit controls are
3410also overridden.<wbr/></p>
3411<p>The FLASH modes are only available if the camera device
3412has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
3413<p>If flash TORCH mode is desired,<wbr/> this field must be set to
3414ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
3415<p>When set to any of the ON modes,<wbr/> the values chosen by the
3416camera device auto-exposure routine for the overridden
3417fields for a given capture will be available in its
3418CaptureResult.<wbr/></p>
3419 </td>
3420 </tr>
3421
3422
3423 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3424 <!-- end of entry -->
3425
3426
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003427 <tr class="entry" id="dynamic_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003428 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003429 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003430 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003431 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003432 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003433 <span class="entry_type_container">x</span>
3434
3435 <span class="entry_type_array">
3436 5 x area_count
3437 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003438 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003439
3440
3441 </td> <!-- entry_type -->
3442
3443 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003444 <p>List of areas to use for
3445metering</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003446 </td>
3447
3448 <td class="entry_units">
3449 </td>
3450
3451 <td class="entry_range">
3452 </td>
3453
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003454 <td class="entry_tags">
3455 <ul class="entry_tags">
3456 <li><a href="#tag_BC">BC</a></li>
3457 </ul>
3458 </td>
3459
3460 </tr>
3461 <tr class="entries_header">
3462 <th class="th_details" colspan="5">Details</th>
3463 </tr>
3464 <tr class="entry_cont">
3465 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003466 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
3467xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
3468specified coordinates.<wbr/></p>
3469<p>The coordinate system is based on the active pixel array,<wbr/>
3470with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003471(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3472<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 -08003473bottom-right pixel in the active pixel array.<wbr/> The weight
3474should be nonnegative.<wbr/></p>
3475<p>If all regions have 0 weight,<wbr/> then no specific metering area
3476needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003477outside 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 -08003478should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08003479used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003480 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003481 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003482
3483
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003484 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3485 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003486
3487
3488 <tr class="entry" id="dynamic_android.control.aeState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003489 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003490 android.<wbr/>control.<wbr/>ae<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003491 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003492 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003493 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003494
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003495 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003496
3497 <ul class="entry_type_enum">
3498 <li>
3499 <span class="entry_type_enum_name">INACTIVE</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003500 <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 -08003501this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003502 </li>
3503 <li>
3504 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003505 <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 -08003506for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003507 </li>
3508 <li>
3509 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003510 <span class="entry_type_enum_notes"><p>AE has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08003511current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003512 </li>
3513 <li>
3514 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003515 <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003516 </li>
3517 <li>
3518 <span class="entry_type_enum_name">FLASH_REQUIRED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003519 <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
3520needs to be fired for good quality still
Zhijun He92e698d2014-01-13 16:24:31 -08003521capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003522 </li>
3523 <li>
3524 <span class="entry_type_enum_name">PRECAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003525 <span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence
Zhijun He92e698d2014-01-13 16:24:31 -08003526(through the <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> START),<wbr/>
3527and is currently executing it.<wbr/> Once PRECAPTURE
Igor Murashkina10351a2014-01-15 17:05:22 -08003528completes,<wbr/> AE will transition to CONVERGED or
Zhijun He92e698d2014-01-13 16:24:31 -08003529FLASH_<wbr/>REQUIRED as appropriate.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003530 </li>
3531 </ul>
3532
3533 </td> <!-- entry_type -->
3534
3535 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003536 <p>Current state of AE algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003537 </td>
3538
3539 <td class="entry_units">
3540 </td>
3541
3542 <td class="entry_range">
3543 </td>
3544
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003545 <td class="entry_tags">
3546 </td>
3547
3548 </tr>
3549 <tr class="entries_header">
3550 <th class="th_details" colspan="5">Details</th>
3551 </tr>
3552 <tr class="entry_cont">
3553 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003554 <p>Switching between or enabling AE modes (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>) always
3555resets the AE state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3556or <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
3557the algorithm states to INACTIVE.<wbr/></p>
3558<p>The camera device can do several state transitions between two results,<wbr/> if it is
3559allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3560seen in a result.<wbr/></p>
3561<p>The state in the result is the state for this image (in sync with this image): if
3562AE state becomes CONVERGED,<wbr/> then the image data associated with this result should
3563be good to use.<wbr/></p>
3564<p>Below are state transition tables for different AE modes.<wbr/></p>
3565<table>
3566<thead>
3567<tr>
3568<th align="center">State</th>
3569<th align="center">Transition Cause</th>
3570<th align="center">New State</th>
3571<th align="center">Notes</th>
3572</tr>
3573</thead>
3574<tbody>
3575<tr>
3576<td align="center">INACTIVE</td>
3577<td align="center"></td>
3578<td align="center">INACTIVE</td>
3579<td align="center">Camera device auto exposure algorithm is disabled</td>
3580</tr>
3581</tbody>
3582</table>
3583<p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON_<wbr/>*:</p>
3584<table>
3585<thead>
3586<tr>
3587<th align="center">State</th>
3588<th align="center">Transition Cause</th>
3589<th align="center">New State</th>
3590<th align="center">Notes</th>
3591</tr>
3592</thead>
3593<tbody>
3594<tr>
3595<td align="center">INACTIVE</td>
3596<td align="center">Camera device initiates AE scan</td>
3597<td align="center">SEARCHING</td>
3598<td align="center">Values changing</td>
3599</tr>
3600<tr>
3601<td align="center">INACTIVE</td>
3602<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3603<td align="center">LOCKED</td>
3604<td align="center">Values locked</td>
3605</tr>
3606<tr>
3607<td align="center">SEARCHING</td>
3608<td align="center">Camera device finishes AE scan</td>
3609<td align="center">CONVERGED</td>
3610<td align="center">Good values,<wbr/> not changing</td>
3611</tr>
3612<tr>
3613<td align="center">SEARCHING</td>
3614<td align="center">Camera device finishes AE scan</td>
3615<td align="center">FLASH_<wbr/>REQUIRED</td>
3616<td align="center">Converged but too dark w/<wbr/>o flash</td>
3617</tr>
3618<tr>
3619<td align="center">SEARCHING</td>
3620<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3621<td align="center">LOCKED</td>
3622<td align="center">Values locked</td>
3623</tr>
3624<tr>
3625<td align="center">CONVERGED</td>
3626<td align="center">Camera device initiates AE scan</td>
3627<td align="center">SEARCHING</td>
3628<td align="center">Values changing</td>
3629</tr>
3630<tr>
3631<td align="center">CONVERGED</td>
3632<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3633<td align="center">LOCKED</td>
3634<td align="center">Values locked</td>
3635</tr>
3636<tr>
3637<td align="center">FLASH_<wbr/>REQUIRED</td>
3638<td align="center">Camera device initiates AE scan</td>
3639<td align="center">SEARCHING</td>
3640<td align="center">Values changing</td>
3641</tr>
3642<tr>
3643<td align="center">FLASH_<wbr/>REQUIRED</td>
3644<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3645<td align="center">LOCKED</td>
3646<td align="center">Values locked</td>
3647</tr>
3648<tr>
3649<td align="center">LOCKED</td>
3650<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3651<td align="center">SEARCHING</td>
3652<td align="center">Values not good after unlock</td>
3653</tr>
3654<tr>
3655<td align="center">LOCKED</td>
3656<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3657<td align="center">CONVERGED</td>
3658<td align="center">Values good after unlock</td>
3659</tr>
3660<tr>
3661<td align="center">LOCKED</td>
3662<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3663<td align="center">FLASH_<wbr/>REQUIRED</td>
3664<td align="center">Exposure good,<wbr/> but too dark</td>
3665</tr>
3666<tr>
3667<td align="center">PRECAPTURE</td>
3668<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3669<td align="center">CONVERGED</td>
3670<td align="center">Ready for high-quality capture</td>
3671</tr>
3672<tr>
3673<td align="center">PRECAPTURE</td>
3674<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3675<td align="center">LOCKED</td>
3676<td align="center">Ready for high-quality capture</td>
3677</tr>
3678<tr>
3679<td align="center">Any state</td>
3680<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
3681<td align="center">PRECAPTURE</td>
3682<td align="center">Start AE precapture metering sequence</td>
3683</tr>
3684</tbody>
3685</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003686 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003687 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003688
3689
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003690 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3691 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003692
3693
3694 <tr class="entry" id="dynamic_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003695 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003696 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003697 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003698 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003699 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003700
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003701 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003702
3703 <ul class="entry_type_enum">
3704 <li>
3705 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003706 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
3707<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
3708application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003709 </li>
3710 <li>
3711 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003712 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
3713<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
3714is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
3715the autofocus trigger action is called.<wbr/> When that trigger
3716is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
3717the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
3718<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
3719and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003720 </li>
3721 <li>
3722 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003723 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
3724autofocus trigger action is called.<wbr/></p>
3725<p>When that trigger is activated,<wbr/> AF must transition to
3726ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
3727NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
3728position to default,<wbr/> and sets the AF state to
3729INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003730 </li>
3731 <li>
3732 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003733 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3734position continually to attempt to provide a
3735constantly-in-focus image stream.<wbr/></p>
3736<p>The focusing behavior should be suitable for good quality
3737video recording; typically this means slower focus
3738movement and no overshoots.<wbr/> When the AF trigger is not
3739involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
3740and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
3741states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
3742the algorithm should immediately transition into
3743AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3744lens position until a cancel AF trigger is received.<wbr/></p>
3745<p>Once cancel is received,<wbr/> the algorithm should transition
3746back to INACTIVE and resume passive scan.<wbr/> Note that this
3747behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
3748ongoing PASSIVE_<wbr/>SCAN must immediately be
3749canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003750 </li>
3751 <li>
3752 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003753 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3754position continually to attempt to provide a
3755constantly-in-focus image stream.<wbr/></p>
3756<p>The focusing behavior should be suitable for still image
3757capture; typically this means focusing as fast as
3758possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
3759algorithm should start in INACTIVE state,<wbr/> and then
3760transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
3761appropriate as it attempts to maintain focus.<wbr/> When the AF
3762trigger is activated,<wbr/> the algorithm should finish its
3763PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
3764AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3765lens position until a cancel AF trigger is received.<wbr/></p>
3766<p>When the AF cancel trigger is activated,<wbr/> the algorithm
3767should transition back to INACTIVE and then act as if it
3768has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003769 </li>
3770 <li>
3771 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003772 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
3773trigger is ignored,<wbr/> AF state should always be
3774INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003775 </li>
3776 </ul>
3777
3778 </td> <!-- entry_type -->
3779
3780 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003781 <p>Whether AF is currently enabled,<wbr/> and what
3782mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003783 </td>
3784
3785 <td class="entry_units">
3786 </td>
3787
3788 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08003789 <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 -08003790 </td>
3791
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003792 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003793 <ul class="entry_tags">
3794 <li><a href="#tag_BC">BC</a></li>
3795 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003796 </td>
3797
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003798 </tr>
3799 <tr class="entries_header">
3800 <th class="th_details" colspan="5">Details</th>
3801 </tr>
3802 <tr class="entry_cont">
3803 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003804 <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 -08003805<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
3806the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
3807in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003808 </td>
3809 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003810
3811
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003812 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3813 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003814
3815
3816 <tr class="entry" id="dynamic_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003817 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003818 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003819 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003820 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003821 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003822 <span class="entry_type_container">x</span>
3823
3824 <span class="entry_type_array">
3825 5 x area_count
3826 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003827 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003828
3829
3830 </td> <!-- entry_type -->
3831
3832 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003833 <p>List of areas to use for focus
3834estimation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003835 </td>
3836
3837 <td class="entry_units">
3838 </td>
3839
3840 <td class="entry_range">
3841 </td>
3842
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003843 <td class="entry_tags">
3844 <ul class="entry_tags">
3845 <li><a href="#tag_BC">BC</a></li>
3846 </ul>
3847 </td>
3848
3849 </tr>
3850 <tr class="entries_header">
3851 <th class="th_details" colspan="5">Details</th>
3852 </tr>
3853 <tr class="entry_cont">
3854 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003855 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
3856xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
3857specified coordinates.<wbr/></p>
3858<p>The coordinate system is based on the active pixel array,<wbr/>
3859with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003860(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3861<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 -08003862bottom-right pixel in the active pixel array.<wbr/> The weight
3863should be nonnegative.<wbr/></p>
3864<p>If all regions have 0 weight,<wbr/> then no specific focus area
3865needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003866outside 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 -08003867should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08003868used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003869 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003870 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003871
3872
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003873 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3874 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003875
3876
3877 <tr class="entry" id="dynamic_android.control.afState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003878 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003879 android.<wbr/>control.<wbr/>af<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003880 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003881 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003882 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003883
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003884 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003885
3886 <ul class="entry_type_enum">
3887 <li>
3888 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003889 <span class="entry_type_enum_notes"><p>AF off or has not yet tried to scan/<wbr/>been asked
3890to scan.<wbr/> When a camera device is opened,<wbr/> it starts in
3891this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003892 </li>
3893 <li>
3894 <span class="entry_type_enum_name">PASSIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003895 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF is
3896currently doing an AF scan initiated by a continuous
3897autofocus mode</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003898 </li>
3899 <li>
3900 <span class="entry_type_enum_name">PASSIVE_FOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003901 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF currently
3902believes it is in focus,<wbr/> but may restart scanning at
3903any time.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003904 </li>
3905 <li>
3906 <span class="entry_type_enum_name">ACTIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003907 <span class="entry_type_enum_notes"><p>if AUTO or MACRO modes are supported.<wbr/> AF is doing
3908an AF scan because it was triggered by AF
3909trigger</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003910 </li>
3911 <li>
3912 <span class="entry_type_enum_name">FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003913 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF
3914believes it is focused correctly and is
3915locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003916 </li>
3917 <li>
3918 <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003919 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF has
3920failed to focus successfully and is
3921locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003922 </li>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003923 <li>
3924 <span class="entry_type_enum_name">PASSIVE_UNFOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003925 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF finished a
3926passive scan without finding focus,<wbr/> and may restart
3927scanning at any time.<wbr/></p></span>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003928 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003929 </ul>
3930
3931 </td> <!-- entry_type -->
3932
3933 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003934 <p>Current state of AF algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003935 </td>
3936
3937 <td class="entry_units">
3938 </td>
3939
3940 <td class="entry_range">
3941 </td>
3942
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003943 <td class="entry_tags">
3944 </td>
3945
3946 </tr>
3947 <tr class="entries_header">
3948 <th class="th_details" colspan="5">Details</th>
3949 </tr>
3950 <tr class="entry_cont">
3951 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003952 <p>Switching between or enabling AF modes (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) always
3953resets the AF state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3954or <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
3955the algorithm states to INACTIVE.<wbr/></p>
3956<p>The camera device can do several state transitions between two results,<wbr/> if it is
3957allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3958seen in a result.<wbr/></p>
3959<p>The state in the result is the state for this image (in sync with this image): if
3960AF state becomes FOCUSED,<wbr/> then the image data associated with this result should
3961be sharp.<wbr/></p>
3962<p>Below are state transition tables for different AF modes.<wbr/></p>
3963<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>
3964<table>
3965<thead>
3966<tr>
3967<th align="center">State</th>
3968<th align="center">Transition Cause</th>
3969<th align="center">New State</th>
3970<th align="center">Notes</th>
3971</tr>
3972</thead>
3973<tbody>
3974<tr>
3975<td align="center">INACTIVE</td>
3976<td align="center"></td>
3977<td align="center">INACTIVE</td>
3978<td align="center">Never changes</td>
3979</tr>
3980</tbody>
3981</table>
3982<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>
3983<table>
3984<thead>
3985<tr>
3986<th align="center">State</th>
3987<th align="center">Transition Cause</th>
3988<th align="center">New State</th>
3989<th align="center">Notes</th>
3990</tr>
3991</thead>
3992<tbody>
3993<tr>
3994<td align="center">INACTIVE</td>
3995<td align="center">AF_<wbr/>TRIGGER</td>
3996<td align="center">ACTIVE_<wbr/>SCAN</td>
3997<td align="center">Start AF sweep,<wbr/> Lens now moving</td>
3998</tr>
3999<tr>
4000<td align="center">ACTIVE_<wbr/>SCAN</td>
4001<td align="center">AF sweep done</td>
4002<td align="center">FOCUSED_<wbr/>LOCKED</td>
4003<td align="center">Focused,<wbr/> Lens now locked</td>
4004</tr>
4005<tr>
4006<td align="center">ACTIVE_<wbr/>SCAN</td>
4007<td align="center">AF sweep done</td>
4008<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4009<td align="center">Not focused,<wbr/> Lens now locked</td>
4010</tr>
4011<tr>
4012<td align="center">ACTIVE_<wbr/>SCAN</td>
4013<td align="center">AF_<wbr/>CANCEL</td>
4014<td align="center">INACTIVE</td>
4015<td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
4016</tr>
4017<tr>
4018<td align="center">FOCUSED_<wbr/>LOCKED</td>
4019<td align="center">AF_<wbr/>CANCEL</td>
4020<td align="center">INACTIVE</td>
4021<td align="center">Cancel/<wbr/>reset AF</td>
4022</tr>
4023<tr>
4024<td align="center">FOCUSED_<wbr/>LOCKED</td>
4025<td align="center">AF_<wbr/>TRIGGER</td>
4026<td align="center">ACTIVE_<wbr/>SCAN</td>
4027<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4028</tr>
4029<tr>
4030<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4031<td align="center">AF_<wbr/>CANCEL</td>
4032<td align="center">INACTIVE</td>
4033<td align="center">Cancel/<wbr/>reset AF</td>
4034</tr>
4035<tr>
4036<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4037<td align="center">AF_<wbr/>TRIGGER</td>
4038<td align="center">ACTIVE_<wbr/>SCAN</td>
4039<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4040</tr>
4041<tr>
4042<td align="center">Any state</td>
4043<td align="center">Mode change</td>
4044<td align="center">INACTIVE</td>
4045<td align="center"></td>
4046</tr>
4047</tbody>
4048</table>
4049<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>
4050<table>
4051<thead>
4052<tr>
4053<th align="center">State</th>
4054<th align="center">Transition Cause</th>
4055<th align="center">New State</th>
4056<th align="center">Notes</th>
4057</tr>
4058</thead>
4059<tbody>
4060<tr>
4061<td align="center">INACTIVE</td>
4062<td align="center">Camera device initiates new scan</td>
4063<td align="center">PASSIVE_<wbr/>SCAN</td>
4064<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4065</tr>
4066<tr>
4067<td align="center">INACTIVE</td>
4068<td align="center">AF_<wbr/>TRIGGER</td>
4069<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4070<td align="center">AF state query,<wbr/> Lens now locked</td>
4071</tr>
4072<tr>
4073<td align="center">PASSIVE_<wbr/>SCAN</td>
4074<td align="center">Camera device completes current scan</td>
4075<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4076<td align="center">End AF scan,<wbr/> Lens now locked</td>
4077</tr>
4078<tr>
4079<td align="center">PASSIVE_<wbr/>SCAN</td>
4080<td align="center">Camera device fails current scan</td>
4081<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4082<td align="center">End AF scan,<wbr/> Lens now locked</td>
4083</tr>
4084<tr>
4085<td align="center">PASSIVE_<wbr/>SCAN</td>
4086<td align="center">AF_<wbr/>TRIGGER</td>
4087<td align="center">FOCUSED_<wbr/>LOCKED</td>
4088<td align="center">Immediate trans.<wbr/> If focus is good,<wbr/> Lens now locked</td>
4089</tr>
4090<tr>
4091<td align="center">PASSIVE_<wbr/>SCAN</td>
4092<td align="center">AF_<wbr/>TRIGGER</td>
4093<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4094<td align="center">Immediate trans.<wbr/> if focus is bad,<wbr/> Lens now locked</td>
4095</tr>
4096<tr>
4097<td align="center">PASSIVE_<wbr/>SCAN</td>
4098<td align="center">AF_<wbr/>CANCEL</td>
4099<td align="center">INACTIVE</td>
4100<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4101</tr>
4102<tr>
4103<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4104<td align="center">Camera device initiates new scan</td>
4105<td align="center">PASSIVE_<wbr/>SCAN</td>
4106<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4107</tr>
4108<tr>
4109<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4110<td align="center">Camera device initiates new scan</td>
4111<td align="center">PASSIVE_<wbr/>SCAN</td>
4112<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4113</tr>
4114<tr>
4115<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4116<td align="center">AF_<wbr/>TRIGGER</td>
4117<td align="center">FOCUSED_<wbr/>LOCKED</td>
4118<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4119</tr>
4120<tr>
4121<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4122<td align="center">AF_<wbr/>TRIGGER</td>
4123<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4124<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4125</tr>
4126<tr>
4127<td align="center">FOCUSED_<wbr/>LOCKED</td>
4128<td align="center">AF_<wbr/>TRIGGER</td>
4129<td align="center">FOCUSED_<wbr/>LOCKED</td>
4130<td align="center">No effect</td>
4131</tr>
4132<tr>
4133<td align="center">FOCUSED_<wbr/>LOCKED</td>
4134<td align="center">AF_<wbr/>CANCEL</td>
4135<td align="center">INACTIVE</td>
4136<td align="center">Restart AF scan</td>
4137</tr>
4138<tr>
4139<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4140<td align="center">AF_<wbr/>TRIGGER</td>
4141<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4142<td align="center">No effect</td>
4143</tr>
4144<tr>
4145<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4146<td align="center">AF_<wbr/>CANCEL</td>
4147<td align="center">INACTIVE</td>
4148<td align="center">Restart AF scan</td>
4149</tr>
4150</tbody>
4151</table>
4152<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>
4153<table>
4154<thead>
4155<tr>
4156<th align="center">State</th>
4157<th align="center">Transition Cause</th>
4158<th align="center">New State</th>
4159<th align="center">Notes</th>
4160</tr>
4161</thead>
4162<tbody>
4163<tr>
4164<td align="center">INACTIVE</td>
4165<td align="center">Camera device initiates new scan</td>
4166<td align="center">PASSIVE_<wbr/>SCAN</td>
4167<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4168</tr>
4169<tr>
4170<td align="center">INACTIVE</td>
4171<td align="center">AF_<wbr/>TRIGGER</td>
4172<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4173<td align="center">AF state query,<wbr/> Lens now locked</td>
4174</tr>
4175<tr>
4176<td align="center">PASSIVE_<wbr/>SCAN</td>
4177<td align="center">Camera device completes current scan</td>
4178<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4179<td align="center">End AF scan,<wbr/> Lens now locked</td>
4180</tr>
4181<tr>
4182<td align="center">PASSIVE_<wbr/>SCAN</td>
4183<td align="center">Camera device fails current scan</td>
4184<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4185<td align="center">End AF scan,<wbr/> Lens now locked</td>
4186</tr>
4187<tr>
4188<td align="center">PASSIVE_<wbr/>SCAN</td>
4189<td align="center">AF_<wbr/>TRIGGER</td>
4190<td align="center">FOCUSED_<wbr/>LOCKED</td>
4191<td align="center">Eventual trans.<wbr/> once focus good,<wbr/> Lens now locked</td>
4192</tr>
4193<tr>
4194<td align="center">PASSIVE_<wbr/>SCAN</td>
4195<td align="center">AF_<wbr/>TRIGGER</td>
4196<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4197<td align="center">Eventual trans.<wbr/> if cannot focus,<wbr/> Lens now locked</td>
4198</tr>
4199<tr>
4200<td align="center">PASSIVE_<wbr/>SCAN</td>
4201<td align="center">AF_<wbr/>CANCEL</td>
4202<td align="center">INACTIVE</td>
4203<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4204</tr>
4205<tr>
4206<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4207<td align="center">Camera device initiates new scan</td>
4208<td align="center">PASSIVE_<wbr/>SCAN</td>
4209<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4210</tr>
4211<tr>
4212<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4213<td align="center">Camera device initiates new scan</td>
4214<td align="center">PASSIVE_<wbr/>SCAN</td>
4215<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4216</tr>
4217<tr>
4218<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4219<td align="center">AF_<wbr/>TRIGGER</td>
4220<td align="center">FOCUSED_<wbr/>LOCKED</td>
4221<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4222</tr>
4223<tr>
4224<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4225<td align="center">AF_<wbr/>TRIGGER</td>
4226<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4227<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4228</tr>
4229<tr>
4230<td align="center">FOCUSED_<wbr/>LOCKED</td>
4231<td align="center">AF_<wbr/>TRIGGER</td>
4232<td align="center">FOCUSED_<wbr/>LOCKED</td>
4233<td align="center">No effect</td>
4234</tr>
4235<tr>
4236<td align="center">FOCUSED_<wbr/>LOCKED</td>
4237<td align="center">AF_<wbr/>CANCEL</td>
4238<td align="center">INACTIVE</td>
4239<td align="center">Restart AF scan</td>
4240</tr>
4241<tr>
4242<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4243<td align="center">AF_<wbr/>TRIGGER</td>
4244<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4245<td align="center">No effect</td>
4246</tr>
4247<tr>
4248<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4249<td align="center">AF_<wbr/>CANCEL</td>
4250<td align="center">INACTIVE</td>
4251<td align="center">Restart AF scan</td>
4252</tr>
4253</tbody>
4254</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004255 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004256 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004257
4258
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004259 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4260 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004261
4262
4263 <tr class="entry" id="dynamic_android.control.afTriggerId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004264 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004265 android.<wbr/>control.<wbr/>af<wbr/>Trigger<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004266 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004267 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004268 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004269
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004270 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004271
4272
4273 </td> <!-- entry_type -->
4274
4275 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004276 <p>The ID sent with the latest
4277CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004278 </td>
4279
4280 <td class="entry_units">
4281 </td>
4282
4283 <td class="entry_range">
4284 </td>
4285
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004286 <td class="entry_tags">
4287 </td>
4288
4289 </tr>
4290 <tr class="entries_header">
4291 <th class="th_details" colspan="5">Details</th>
4292 </tr>
4293 <tr class="entry_cont">
4294 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004295 <p>Must be 0 if no CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS trigger
4296received yet by HAL.<wbr/> Always updated even if AF algorithm
4297ignores the trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004298 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004299 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004300
4301
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004302 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4303 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004304
4305
4306 <tr class="entry" id="dynamic_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004307 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004308 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004309 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004310 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004311 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004312
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004313 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004314
4315 <ul class="entry_type_enum">
4316 <li>
4317 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004318 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4319the application-selected color transform matrix
4320(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
4321(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
4322device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004323 </li>
4324 <li>
4325 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004326 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
4327the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
4328and <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 -08004329 </li>
4330 <li>
4331 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004332 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4333the camera device uses incandescent light as the assumed scene
4334illumination for white balance.<wbr/> While the exact white balance
4335transforms are up to the camera device,<wbr/> they will approximately
4336match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004337 </li>
4338 <li>
4339 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004340 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4341the camera device uses fluorescent light as the assumed scene
4342illumination for white balance.<wbr/> While the exact white balance
4343transforms are up to the camera device,<wbr/> they will approximately
4344match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004345 </li>
4346 <li>
4347 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004348 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4349the camera device uses warm fluorescent light as the assumed scene
4350illumination for white balance.<wbr/> While the exact white balance
4351transforms are up to the camera device,<wbr/> they will approximately
4352match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004353 </li>
4354 <li>
4355 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004356 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4357the camera device uses daylight light as the assumed scene
4358illumination for white balance.<wbr/> While the exact white balance
4359transforms are up to the camera device,<wbr/> they will approximately
4360match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004361 </li>
4362 <li>
4363 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004364 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4365the camera device uses cloudy daylight light as the assumed scene
4366illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004367 </li>
4368 <li>
4369 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004370 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4371the camera device uses twilight light as the assumed scene
4372illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004373 </li>
4374 <li>
4375 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004376 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4377the camera device uses shade light as the assumed scene
4378illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004379 </li>
4380 </ul>
4381
4382 </td> <!-- entry_type -->
4383
4384 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004385 <p>Whether AWB is currently setting the color
4386transform fields,<wbr/> and what its illumination target
4387is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004388 </td>
4389
4390 <td class="entry_units">
4391 </td>
4392
4393 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08004394 <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 -08004395 </td>
4396
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004397 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004398 <ul class="entry_tags">
4399 <li><a href="#tag_BC">BC</a></li>
4400 <li><a href="#tag_AWB">AWB</a></li>
4401 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004402 </td>
4403
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004404 </tr>
4405 <tr class="entries_header">
4406 <th class="th_details" colspan="5">Details</th>
4407 </tr>
4408 <tr class="entry_cont">
4409 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08004410 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
4411<p>When set to the ON mode,<wbr/> the camera device's auto white balance
4412routine is enabled,<wbr/> overriding the application's selected
4413<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
4414<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4415<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
4416routine is disabled.<wbr/> The applicantion manually controls the white
4417balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
4418and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4419<p>When set to any other modes,<wbr/> the camera device's auto white balance
4420routine is disabled.<wbr/> The camera device uses each particular illumination
4421target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004422 </td>
4423 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004424
4425
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004426 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4427 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004428
4429
4430 <tr class="entry" id="dynamic_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004431 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004432 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004433 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004434 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004435 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004436 <span class="entry_type_container">x</span>
4437
4438 <span class="entry_type_array">
4439 5 x area_count
4440 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004441 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004442
4443
4444 </td> <!-- entry_type -->
4445
4446 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004447 <p>List of areas to use for illuminant
4448estimation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004449 </td>
4450
4451 <td class="entry_units">
4452 </td>
4453
4454 <td class="entry_range">
4455 </td>
4456
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004457 <td class="entry_tags">
4458 <ul class="entry_tags">
4459 <li><a href="#tag_BC">BC</a></li>
4460 </ul>
4461 </td>
4462
4463 </tr>
4464 <tr class="entries_header">
4465 <th class="th_details" colspan="5">Details</th>
4466 </tr>
4467 <tr class="entry_cont">
4468 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004469 <p>Only used in AUTO mode.<wbr/></p>
4470<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
4471xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
4472specified coordinates.<wbr/></p>
4473<p>The coordinate system is based on the active pixel array,<wbr/>
4474with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004475(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
4476<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 -08004477bottom-right pixel in the active pixel array.<wbr/> The weight
4478should be nonnegative.<wbr/></p>
4479<p>If all regions have 0 weight,<wbr/> then no specific metering area
4480needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004481outside 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 -08004482should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08004483used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004484 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004485 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004486
4487
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004488 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4489 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004490
4491
4492 <tr class="entry" id="dynamic_android.control.awbState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004493 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004494 android.<wbr/>control.<wbr/>awb<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004495 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004496 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004497 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004498
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004499 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004500
4501 <ul class="entry_type_enum">
4502 <li>
4503 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004504 <span class="entry_type_enum_notes"><p>AWB is not in auto mode.<wbr/> When a camera device is opened,<wbr/> it
4505starts in this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004506 </li>
4507 <li>
4508 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004509 <span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control
Zhijun He92e698d2014-01-13 16:24:31 -08004510values for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004511 </li>
4512 <li>
4513 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004514 <span class="entry_type_enum_notes"><p>AWB has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08004515current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004516 </li>
4517 <li>
4518 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08004519 <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004520 </li>
4521 </ul>
4522
4523 </td> <!-- entry_type -->
4524
4525 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004526 <p>Current state of AWB algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004527 </td>
4528
4529 <td class="entry_units">
4530 </td>
4531
4532 <td class="entry_range">
4533 </td>
4534
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004535 <td class="entry_tags">
4536 </td>
4537
4538 </tr>
4539 <tr class="entries_header">
4540 <th class="th_details" colspan="5">Details</th>
4541 </tr>
4542 <tr class="entry_cont">
4543 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08004544 <p>Switching between or enabling AWB modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) always
4545resets the AWB state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
4546or <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
4547the algorithm states to INACTIVE.<wbr/></p>
4548<p>The camera device can do several state transitions between two results,<wbr/> if it is
4549allowed by the state transition table.<wbr/> So INACTIVE may never actually be seen in
4550a result.<wbr/></p>
4551<p>The state in the result is the state for this image (in sync with this image): if
4552AWB state becomes CONVERGED,<wbr/> then the image data associated with this result should
4553be good to use.<wbr/></p>
4554<p>Below are state transition tables for different AWB modes.<wbr/></p>
4555<p>When <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != AWB_<wbr/>MODE_<wbr/>AUTO</code>:</p>
4556<table>
4557<thead>
4558<tr>
4559<th align="center">State</th>
4560<th align="center">Transition Cause</th>
4561<th align="center">New State</th>
4562<th align="center">Notes</th>
4563</tr>
4564</thead>
4565<tbody>
4566<tr>
4567<td align="center">INACTIVE</td>
4568<td align="center"></td>
4569<td align="center">INACTIVE</td>
4570<td align="center">Camera device auto white balance algorithm is disabled</td>
4571</tr>
4572</tbody>
4573</table>
4574<p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is AWB_<wbr/>MODE_<wbr/>AUTO:</p>
4575<table>
4576<thead>
4577<tr>
4578<th align="center">State</th>
4579<th align="center">Transition Cause</th>
4580<th align="center">New State</th>
4581<th align="center">Notes</th>
4582</tr>
4583</thead>
4584<tbody>
4585<tr>
4586<td align="center">INACTIVE</td>
4587<td align="center">Camera device initiates AWB scan</td>
4588<td align="center">SEARCHING</td>
4589<td align="center">Values changing</td>
4590</tr>
4591<tr>
4592<td align="center">INACTIVE</td>
4593<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4594<td align="center">LOCKED</td>
4595<td align="center">Values locked</td>
4596</tr>
4597<tr>
4598<td align="center">SEARCHING</td>
4599<td align="center">Camera device finishes AWB scan</td>
4600<td align="center">CONVERGED</td>
4601<td align="center">Good values,<wbr/> not changing</td>
4602</tr>
4603<tr>
4604<td align="center">SEARCHING</td>
4605<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4606<td align="center">LOCKED</td>
4607<td align="center">Values locked</td>
4608</tr>
4609<tr>
4610<td align="center">CONVERGED</td>
4611<td align="center">Camera device initiates AWB scan</td>
4612<td align="center">SEARCHING</td>
4613<td align="center">Values changing</td>
4614</tr>
4615<tr>
4616<td align="center">CONVERGED</td>
4617<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4618<td align="center">LOCKED</td>
4619<td align="center">Values locked</td>
4620</tr>
4621<tr>
4622<td align="center">LOCKED</td>
4623<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4624<td align="center">SEARCHING</td>
4625<td align="center">Values not good after unlock</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">CONVERGED</td>
4631<td align="center">Values good after unlock</td>
4632</tr>
4633</tbody>
4634</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004635 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004636 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004637
4638
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004639 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4640 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004641
4642
4643 <tr class="entry" id="dynamic_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004644 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004645 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004646 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004647 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004648 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004649
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004650 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004651
4652 <ul class="entry_type_enum">
4653 <li>
4654 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004655 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
4656routines are disabled,<wbr/> no other settings in
4657android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004658 </li>
4659 <li>
4660 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004661 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
4662Manual control of capture parameters is disabled.<wbr/> All
4663controls in android.<wbr/>control.<wbr/>* besides sceneMode take
4664effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004665 </li>
4666 <li>
4667 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004668 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
4669control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
4670controls; the HAL must ignore those settings while
4671USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
4672scene mode).<wbr/> Other control entries are still active.<wbr/>
4673This setting can only be used if availableSceneModes !=
4674UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004675 </li>
4676 </ul>
4677
4678 </td> <!-- entry_type -->
4679
4680 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004681 <p>Overall mode of 3A control
4682routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004683 </td>
4684
4685 <td class="entry_units">
4686 </td>
4687
4688 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004689 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004690 </td>
4691
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004692 <td class="entry_tags">
4693 <ul class="entry_tags">
4694 <li><a href="#tag_BC">BC</a></li>
4695 </ul>
4696 </td>
4697
4698 </tr>
4699 <tr class="entries_header">
4700 <th class="th_details" colspan="5">Details</th>
4701 </tr>
4702 <tr class="entry_cont">
4703 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004704 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004705by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08004706capture parameters itself.<wbr/></p>
4707<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004708android.<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 -08004709<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004710android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08004711one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004712as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004713<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 -08004714 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004715 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004716
4717
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004718 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4719 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004720
4721
4722
4723 <!-- end of kind -->
4724 </tbody>
4725
4726 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004727 <tr><td colspan="6" id="section_demosaic" class="section">demosaic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004728
4729
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004730 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004731
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004732 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004733 <tr>
4734 <th class="th_name">Property Name</th>
4735 <th class="th_type">Type</th>
4736 <th class="th_description">Description</th>
4737 <th class="th_units">Units</th>
4738 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004739 <th class="th_tags">Tags</th>
4740 </tr>
4741 </thead>
4742
4743 <tbody>
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754 <tr class="entry" id="controls_android.demosaic.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004755 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004756 android.<wbr/>demosaic.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004757 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004758 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004759 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004760
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004761 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004762
4763 <ul class="entry_type_enum">
4764 <li>
4765 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004766 <span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to
4767Bayer RAW output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004768 </li>
4769 <li>
4770 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004771 <span class="entry_type_enum_notes"><p>High-quality may reduce output frame
4772rate</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004773 </li>
4774 </ul>
4775
4776 </td> <!-- entry_type -->
4777
4778 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004779 <p>Controls the quality of the demosaicing
4780processing</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004781 </td>
4782
4783 <td class="entry_units">
4784 </td>
4785
4786 <td class="entry_range">
4787 </td>
4788
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004789 <td class="entry_tags">
4790 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004791 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004792 </ul>
4793 </td>
4794
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004795 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004796
4797
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004798 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4799 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004800
4801
4802
4803 <!-- end of kind -->
4804 </tbody>
4805
4806 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004807 <tr><td colspan="6" id="section_edge" class="section">edge</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004808
4809
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004810 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004811
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004812 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004813 <tr>
4814 <th class="th_name">Property Name</th>
4815 <th class="th_type">Type</th>
4816 <th class="th_description">Description</th>
4817 <th class="th_units">Units</th>
4818 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004819 <th class="th_tags">Tags</th>
4820 </tr>
4821 </thead>
4822
4823 <tbody>
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834 <tr class="entry" id="controls_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004835 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004836 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004837 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004838 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004839 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004840
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004841 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004842
4843 <ul class="entry_type_enum">
4844 <li>
4845 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004846 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004847 </li>
4848 <li>
4849 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004850 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4851output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004852 </li>
4853 <li>
4854 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004855 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4856quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004857 </li>
4858 </ul>
4859
4860 </td> <!-- entry_type -->
4861
4862 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004863 <p>Operation mode for edge
4864enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004865 </td>
4866
4867 <td class="entry_units">
4868 </td>
4869
4870 <td class="entry_range">
4871 </td>
4872
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004873 <td class="entry_tags">
4874 </td>
4875
4876 </tr>
4877 <tr class="entries_header">
4878 <th class="th_details" colspan="5">Details</th>
4879 </tr>
4880 <tr class="entry_cont">
4881 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004882 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
4883enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004884<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08004885will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004886camera device will use the highest-quality enhancement algorithms,<wbr/>
4887even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08004888not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004889 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004890 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004891
4892
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004893 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4894 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004895
4896
4897 <tr class="entry" id="controls_android.edge.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004898 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004899 android.<wbr/>edge.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004900 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004901 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004902 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004903
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004904 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004905
4906
4907 </td> <!-- entry_type -->
4908
4909 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004910 <p>Control the amount of edge enhancement
4911applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004912 </td>
4913
4914 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08004915 1-10; 10 is maximum sharpening
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004916 </td>
4917
4918 <td class="entry_range">
4919 </td>
4920
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004921 <td class="entry_tags">
4922 </td>
4923
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004924 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004925
4926
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004927 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4928 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004929
4930
4931
4932 <!-- end of kind -->
4933 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004934 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004935
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004936 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004937 <tr>
4938 <th class="th_name">Property Name</th>
4939 <th class="th_type">Type</th>
4940 <th class="th_description">Description</th>
4941 <th class="th_units">Units</th>
4942 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004943 <th class="th_tags">Tags</th>
4944 </tr>
4945 </thead>
4946
4947 <tbody>
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958 <tr class="entry" id="dynamic_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004959 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004960 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004961 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004962 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004963 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004964
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004965 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004966
4967 <ul class="entry_type_enum">
4968 <li>
4969 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004970 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004971 </li>
4972 <li>
4973 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004974 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4975output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004976 </li>
4977 <li>
4978 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004979 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4980quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004981 </li>
4982 </ul>
4983
4984 </td> <!-- entry_type -->
4985
4986 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004987 <p>Operation mode for edge
4988enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004989 </td>
4990
4991 <td class="entry_units">
4992 </td>
4993
4994 <td class="entry_range">
4995 </td>
4996
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004997 <td class="entry_tags">
4998 </td>
4999
5000 </tr>
5001 <tr class="entries_header">
5002 <th class="th_details" colspan="5">Details</th>
5003 </tr>
5004 <tr class="entry_cont">
5005 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005006 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
5007enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005008<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08005009will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005010camera device will use the highest-quality enhancement algorithms,<wbr/>
5011even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08005012not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005013 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005014 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005015
5016
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005017 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5018 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005019
5020
5021
5022 <!-- end of kind -->
5023 </tbody>
5024
5025 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005026 <tr><td colspan="6" id="section_flash" class="section">flash</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005027
5028
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005029 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005030
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005031 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005032 <tr>
5033 <th class="th_name">Property Name</th>
5034 <th class="th_type">Type</th>
5035 <th class="th_description">Description</th>
5036 <th class="th_units">Units</th>
5037 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005038 <th class="th_tags">Tags</th>
5039 </tr>
5040 </thead>
5041
5042 <tbody>
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053 <tr class="entry" id="controls_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005054 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005055 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005056 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005057 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005058 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005059
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005060 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005061
5062
5063 </td> <!-- entry_type -->
5064
5065 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005066 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005067 </td>
5068
5069 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005070 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005071 </td>
5072
5073 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005074 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005075 </td>
5076
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005077 <td class="entry_tags">
5078 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005079 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005080 </ul>
5081 </td>
5082
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005083 </tr>
5084 <tr class="entries_header">
5085 <th class="th_details" colspan="5">Details</th>
5086 </tr>
5087 <tr class="entry_cont">
5088 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005089 <p>Power for snapshot may use a different scale than
5090for torch mode.<wbr/> Only one entry for torch mode will be
5091used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005092 </td>
5093 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005094
5095
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005096 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5097 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005098
5099
5100 <tr class="entry" id="controls_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005101 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005102 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005103 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005104 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005105 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005106
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005107 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005108
5109
5110 </td> <!-- entry_type -->
5111
5112 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005113 <p>Firing time of flash relative to start of
5114exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005115 </td>
5116
5117 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005118 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005119 </td>
5120
5121 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005122 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005123 </td>
5124
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005125 <td class="entry_tags">
5126 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005127 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005128 </ul>
5129 </td>
5130
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005131 </tr>
5132 <tr class="entries_header">
5133 <th class="th_details" colspan="5">Details</th>
5134 </tr>
5135 <tr class="entry_cont">
5136 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005137 <p>Clamped to (0,<wbr/> exposure time - flash
5138duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005139 </td>
5140 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005141
5142
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005143 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5144 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005145
5146
5147 <tr class="entry" id="controls_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005148 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005149 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005150 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005151 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005152 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005153
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005154 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005155
5156 <ul class="entry_type_enum">
5157 <li>
5158 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005159 <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 -08005160 </li>
5161 <li>
5162 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005163 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5164for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5165<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005166 </li>
5167 <li>
5168 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005169 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005170 </li>
5171 </ul>
5172
5173 </td> <!-- entry_type -->
5174
5175 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005176 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005177 </td>
5178
5179 <td class="entry_units">
5180 </td>
5181
5182 <td class="entry_range">
5183 </td>
5184
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005185 <td class="entry_tags">
5186 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005187 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005188 </ul>
5189 </td>
5190
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005191 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005192 <tr class="entries_header">
5193 <th class="th_details" colspan="5">Details</th>
5194 </tr>
5195 <tr class="entry_cont">
5196 <td class="entry_details" colspan="5">
5197 <p>This control is only effective when flash unit is available
Zhijun Hebdc94c42014-01-21 18:28:30 -08005198(<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 -08005199<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/>
5200Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5201ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5202<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5203<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5204device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5205control should be used along with AE precapture metering sequence
5206(<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>
5207<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5208for 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 -08005209<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 -08005210 </td>
5211 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005212
5213
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005214 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5215 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005216
5217
5218
5219 <!-- end of kind -->
5220 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005221 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005222
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005223 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005224 <tr>
5225 <th class="th_name">Property Name</th>
5226 <th class="th_type">Type</th>
5227 <th class="th_description">Description</th>
5228 <th class="th_units">Units</th>
5229 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005230 <th class="th_tags">Tags</th>
5231 </tr>
5232 </thead>
5233
5234 <tbody>
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247 <tr class="entry" id="static_android.flash.info.available">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005248 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005249 android.<wbr/>flash.<wbr/>info.<wbr/>available
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005250 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005251 <td class="entry_type">
Zhijun He5169ce12014-01-24 16:48:25 -08005252 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005253
Zhijun He5169ce12014-01-24 16:48:25 -08005254 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005255
Zhijun He5169ce12014-01-24 16:48:25 -08005256 <ul class="entry_type_enum">
5257 <li>
5258 <span class="entry_type_enum_name">FALSE</span>
5259 </li>
5260 <li>
5261 <span class="entry_type_enum_name">TRUE</span>
5262 </li>
5263 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005264
5265 </td> <!-- entry_type -->
5266
5267 <td class="entry_description">
Zhijun He5169ce12014-01-24 16:48:25 -08005268 <p>Whether this camera device has a
5269flash.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005270 </td>
5271
5272 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005273 </td>
5274
5275 <td class="entry_range">
5276 </td>
5277
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005278 <td class="entry_tags">
5279 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005280 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005281 </ul>
5282 </td>
5283
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005284 </tr>
5285 <tr class="entries_header">
5286 <th class="th_details" colspan="5">Details</th>
5287 </tr>
5288 <tr class="entry_cont">
5289 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005290 <p>If no flash,<wbr/> none of the flash controls do
Zhijun He5169ce12014-01-24 16:48:25 -08005291anything.<wbr/> All other metadata should return 0.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005292 </td>
5293 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005294
5295
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005296 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5297 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005298
5299
5300 <tr class="entry" id="static_android.flash.info.chargeDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005301 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005302 android.<wbr/>flash.<wbr/>info.<wbr/>charge<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005303 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005304 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005305 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005306
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005307 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005308
5309
5310 </td> <!-- entry_type -->
5311
5312 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005313 <p>Time taken before flash can fire
5314again</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005315 </td>
5316
5317 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005318 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005319 </td>
5320
5321 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005322 <p>0-1e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005323 </td>
5324
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005325 <td class="entry_tags">
5326 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005327 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005328 </ul>
5329 </td>
5330
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005331 </tr>
5332 <tr class="entries_header">
5333 <th class="th_details" colspan="5">Details</th>
5334 </tr>
5335 <tr class="entry_cont">
5336 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005337 <p>1 second too long/<wbr/>too short for recharge? Should
5338this be power-dependent?</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005339 </td>
5340 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005341
5342
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005343 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5344 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005345
5346
5347
5348
5349
5350 <tr class="entry" id="static_android.flash.colorTemperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005351 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005352 android.<wbr/>flash.<wbr/>color<wbr/>Temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005353 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005354 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005355 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005356
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005357 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005358
5359
5360 </td> <!-- entry_type -->
5361
5362 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005363 <p>The x,<wbr/>y whitepoint of the
5364flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005365 </td>
5366
5367 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005368 pair of floats
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005369 </td>
5370
5371 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005372 <p>0-1 for both</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005373 </td>
5374
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005375 <td class="entry_tags">
5376 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005377 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005378 </ul>
5379 </td>
5380
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005381 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005382
5383
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005384 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5385 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005386
5387
5388 <tr class="entry" id="static_android.flash.maxEnergy">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005389 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005390 android.<wbr/>flash.<wbr/>max<wbr/>Energy
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005391 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005392 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005393 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005394
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005395 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005396
5397
5398 </td> <!-- entry_type -->
5399
5400 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005401 <p>Max energy output of the flash for a full
5402power single flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005403 </td>
5404
5405 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005406 lumen-seconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005407 </td>
5408
5409 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08005410 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005411 </td>
5412
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005413 <td class="entry_tags">
5414 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005415 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005416 </ul>
5417 </td>
5418
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005419 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005420
5421
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005422 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5423 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005424
5425
5426
5427 <!-- end of kind -->
5428 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005429 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005430
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005431 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005432 <tr>
5433 <th class="th_name">Property Name</th>
5434 <th class="th_type">Type</th>
5435 <th class="th_description">Description</th>
5436 <th class="th_units">Units</th>
5437 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005438 <th class="th_tags">Tags</th>
5439 </tr>
5440 </thead>
5441
5442 <tbody>
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453 <tr class="entry" id="dynamic_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005454 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005455 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005456 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005457 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005458 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005459
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005460 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005461
5462
5463 </td> <!-- entry_type -->
5464
5465 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005466 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005467 </td>
5468
5469 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005470 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005471 </td>
5472
5473 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005474 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005475 </td>
5476
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005477 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005478 <ul class="entry_tags">
5479 <li><a href="#tag_V1">V1</a></li>
5480 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005481 </td>
5482
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005483 </tr>
5484 <tr class="entries_header">
5485 <th class="th_details" colspan="5">Details</th>
5486 </tr>
5487 <tr class="entry_cont">
5488 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005489 <p>Power for snapshot may use a different scale than
5490for torch mode.<wbr/> Only one entry for torch mode will be
5491used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005492 </td>
5493 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005494
5495
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005496 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5497 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005498
5499
5500 <tr class="entry" id="dynamic_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005501 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005502 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005503 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005504 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005505 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005506
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005507 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005508
5509
5510 </td> <!-- entry_type -->
5511
5512 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005513 <p>Firing time of flash relative to start of
5514exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005515 </td>
5516
5517 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005518 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005519 </td>
5520
5521 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005522 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005523 </td>
5524
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005525 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005526 <ul class="entry_tags">
5527 <li><a href="#tag_V1">V1</a></li>
5528 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005529 </td>
5530
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005531 </tr>
5532 <tr class="entries_header">
5533 <th class="th_details" colspan="5">Details</th>
5534 </tr>
5535 <tr class="entry_cont">
5536 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005537 <p>Clamped to (0,<wbr/> exposure time - flash
5538duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005539 </td>
5540 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005541
5542
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005543 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5544 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005545
5546
5547 <tr class="entry" id="dynamic_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005548 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005549 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005550 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005551 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005552 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005553
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005554 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005555
5556 <ul class="entry_type_enum">
5557 <li>
5558 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005559 <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 -08005560 </li>
5561 <li>
5562 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005563 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5564for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5565<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005566 </li>
5567 <li>
5568 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005569 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005570 </li>
5571 </ul>
5572
5573 </td> <!-- entry_type -->
5574
5575 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005576 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005577 </td>
5578
5579 <td class="entry_units">
5580 </td>
5581
5582 <td class="entry_range">
5583 </td>
5584
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005585 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005586 <ul class="entry_tags">
5587 <li><a href="#tag_BC">BC</a></li>
5588 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005589 </td>
5590
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005591 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005592 <tr class="entries_header">
5593 <th class="th_details" colspan="5">Details</th>
5594 </tr>
5595 <tr class="entry_cont">
5596 <td class="entry_details" colspan="5">
5597 <p>This control is only effective when flash unit is available
Zhijun Hebdc94c42014-01-21 18:28:30 -08005598(<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 -08005599<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/>
5600Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5601ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5602<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5603<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5604device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5605control should be used along with AE precapture metering sequence
5606(<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>
5607<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5608for 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 -08005609<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 -08005610 </td>
5611 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005612
5613
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005614 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5615 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005616
5617
5618 <tr class="entry" id="dynamic_android.flash.state">
Zhijun He5169ce12014-01-24 16:48:25 -08005619 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005620 android.<wbr/>flash.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005621 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005622 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005623 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005624
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005625 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005626
5627 <ul class="entry_type_enum">
5628 <li>
5629 <span class="entry_type_enum_name">UNAVAILABLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005630 <span class="entry_type_enum_notes"><p>No flash on camera</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005631 </li>
5632 <li>
5633 <span class="entry_type_enum_name">CHARGING</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005634 <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 -08005635charging and cannot be fired</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005636 </li>
5637 <li>
5638 <span class="entry_type_enum_name">READY</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005639 <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 -08005640ready to fire</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005641 </li>
5642 <li>
5643 <span class="entry_type_enum_name">FIRED</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005644 <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 -08005645for this capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005646 </li>
5647 </ul>
5648
5649 </td> <!-- entry_type -->
5650
5651 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005652 <p>Current state of the flash
Zhijun He5169ce12014-01-24 16:48:25 -08005653unit.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005654 </td>
5655
5656 <td class="entry_units">
5657 </td>
5658
5659 <td class="entry_range">
5660 </td>
5661
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005662 <td class="entry_tags">
5663 </td>
5664
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005665 </tr>
Zhijun He5169ce12014-01-24 16:48:25 -08005666 <tr class="entries_header">
5667 <th class="th_details" colspan="5">Details</th>
5668 </tr>
5669 <tr class="entry_cont">
5670 <td class="entry_details" colspan="5">
5671 <p>When the camera device doesn't have flash unit
5672(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/>
5673Other states indicate the current flash status.<wbr/></p>
5674 </td>
5675 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005676
5677
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005678 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5679 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005680
5681
5682
5683 <!-- end of kind -->
5684 </tbody>
5685
5686 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005687 <tr><td colspan="6" id="section_geometric" class="section">geometric</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005688
5689
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005690 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005691
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005692 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005693 <tr>
5694 <th class="th_name">Property Name</th>
5695 <th class="th_type">Type</th>
5696 <th class="th_description">Description</th>
5697 <th class="th_units">Units</th>
5698 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005699 <th class="th_tags">Tags</th>
5700 </tr>
5701 </thead>
5702
5703 <tbody>
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714 <tr class="entry" id="controls_android.geometric.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005715 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005716 android.<wbr/>geometric.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005717 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005718 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005719 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005720
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005721 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005722
5723 <ul class="entry_type_enum">
5724 <li>
5725 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005726 <span class="entry_type_enum_notes"><p>No geometric correction is
5727applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005728 </li>
5729 <li>
5730 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005731 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw
5732bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005733 </li>
5734 <li>
5735 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005736 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5737quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005738 </li>
5739 </ul>
5740
5741 </td> <!-- entry_type -->
5742
5743 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005744 <p>Operating mode of geometric
5745correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005746 </td>
5747
5748 <td class="entry_units">
5749 </td>
5750
5751 <td class="entry_range">
5752 </td>
5753
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005754 <td class="entry_tags">
5755 </td>
5756
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005757 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005758
5759
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005760 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5761 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005762
5763
5764 <tr class="entry" id="controls_android.geometric.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005765 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005766 android.<wbr/>geometric.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005767 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005768 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005769 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005770
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005771 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005772
5773
5774 </td> <!-- entry_type -->
5775
5776 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005777 <p>Control the amount of shading correction
5778applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005779 </td>
5780
5781 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005782 unitless: 1-10; 10 is full shading
5783 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005784 </td>
5785
5786 <td class="entry_range">
5787 </td>
5788
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005789 <td class="entry_tags">
5790 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005791 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005792 </ul>
5793 </td>
5794
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005795 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005796
5797
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005798 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5799 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005800
5801
5802
5803 <!-- end of kind -->
5804 </tbody>
5805
5806 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005807 <tr><td colspan="6" id="section_hotPixel" class="section">hotPixel</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005808
5809
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005810 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005811
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005812 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005813 <tr>
5814 <th class="th_name">Property Name</th>
5815 <th class="th_type">Type</th>
5816 <th class="th_description">Description</th>
5817 <th class="th_units">Units</th>
5818 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005819 <th class="th_tags">Tags</th>
5820 </tr>
5821 </thead>
5822
5823 <tbody>
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834 <tr class="entry" id="controls_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005835 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005836 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005837 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005838 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005839 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005840
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005841 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005842
5843 <ul class="entry_type_enum">
5844 <li>
5845 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005846 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
5847applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005848 </li>
5849 <li>
5850 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005851 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
5852Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005853 </li>
5854 <li>
5855 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005856 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5857quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005858 </li>
5859 </ul>
5860
5861 </td> <!-- entry_type -->
5862
5863 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005864 <p>Set operational mode for hot pixel
5865correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005866 </td>
5867
5868 <td class="entry_units">
5869 </td>
5870
5871 <td class="entry_range">
5872 </td>
5873
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005874 <td class="entry_tags">
5875 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005876 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005877 </ul>
5878 </td>
5879
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005880 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005881
5882
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005883 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5884 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005885
5886
5887
5888 <!-- end of kind -->
5889 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005890 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005891
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005892 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005893 <tr>
5894 <th class="th_name">Property Name</th>
5895 <th class="th_type">Type</th>
5896 <th class="th_description">Description</th>
5897 <th class="th_units">Units</th>
5898 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005899 <th class="th_tags">Tags</th>
5900 </tr>
5901 </thead>
5902
5903 <tbody>
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916 <tr class="entry" id="static_android.hotPixel.info.map">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005917 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005918 android.<wbr/>hot<wbr/>Pixel.<wbr/>info.<wbr/>map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005919 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005920 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005921 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005922 <span class="entry_type_container">x</span>
5923
5924 <span class="entry_type_array">
5925 2 x n
5926 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005927 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08005928 <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 -08005929
5930
5931 </td> <!-- entry_type -->
5932
5933 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005934 <p>Location of hot/<wbr/>defective pixels on
5935sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005936 </td>
5937
5938 <td class="entry_units">
5939 </td>
5940
5941 <td class="entry_range">
5942 </td>
5943
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005944 <td class="entry_tags">
5945 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005946 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005947 </ul>
5948 </td>
5949
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005950 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005951
5952
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005953 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5954 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005955
5956
5957
5958
5959
5960
5961 <!-- end of kind -->
5962 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005963 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005964
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005965 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005966 <tr>
5967 <th class="th_name">Property Name</th>
5968 <th class="th_type">Type</th>
5969 <th class="th_description">Description</th>
5970 <th class="th_units">Units</th>
5971 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005972 <th class="th_tags">Tags</th>
5973 </tr>
5974 </thead>
5975
5976 <tbody>
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987 <tr class="entry" id="dynamic_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005988 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005989 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005990 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005991 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005992 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005993
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005994 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005995
5996 <ul class="entry_type_enum">
5997 <li>
5998 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005999 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
6000applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006001 </li>
6002 <li>
6003 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006004 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
6005Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006006 </li>
6007 <li>
6008 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006009 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
6010quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006011 </li>
6012 </ul>
6013
6014 </td> <!-- entry_type -->
6015
6016 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006017 <p>Set operational mode for hot pixel
6018correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006019 </td>
6020
6021 <td class="entry_units">
6022 </td>
6023
6024 <td class="entry_range">
6025 </td>
6026
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006027 <td class="entry_tags">
6028 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006029 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006030 </ul>
6031 </td>
6032
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006033 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006034
6035
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006036 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6037 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006038
6039
6040
6041 <!-- end of kind -->
6042 </tbody>
6043
6044 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006045 <tr><td colspan="6" id="section_jpeg" class="section">jpeg</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006046
6047
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006048 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006049
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006050 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006051 <tr>
6052 <th class="th_name">Property Name</th>
6053 <th class="th_type">Type</th>
6054 <th class="th_description">Description</th>
6055 <th class="th_units">Units</th>
6056 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006057 <th class="th_tags">Tags</th>
6058 </tr>
6059 </thead>
6060
6061 <tbody>
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072 <tr class="entry" id="controls_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006073 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006074 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006075 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006076 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006077 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006078 <span class="entry_type_container">x</span>
6079
6080 <span class="entry_type_array">
6081 3
6082 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006083 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006084 <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 -08006085
6086
6087 </td> <!-- entry_type -->
6088
6089 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006090 <p>GPS coordinates to include in output JPEG
6091EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006092 </td>
6093
6094 <td class="entry_units">
6095 </td>
6096
6097 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006098 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006099 </td>
6100
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006101 <td class="entry_tags">
6102 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006103 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006104 </ul>
6105 </td>
6106
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006107 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006108
6109
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006110 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6111 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006112
6113
6114 <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006115 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006116 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006117 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006118 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006119 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006120
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006121 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006122
6123
6124 </td> <!-- entry_type -->
6125
6126 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006127 <p>32 characters describing GPS algorithm to
6128include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006129 </td>
6130
6131 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006132 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006133 </td>
6134
6135 <td class="entry_range">
6136 </td>
6137
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006138 <td class="entry_tags">
6139 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006140 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006141 </ul>
6142 </td>
6143
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006144 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006145
6146
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006147 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6148 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006149
6150
6151 <tr class="entry" id="controls_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006152 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006153 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006154 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006155 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006156 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006157
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006158 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006159
6160
6161 </td> <!-- entry_type -->
6162
6163 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006164 <p>Time GPS fix was made to include in
6165EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006166 </td>
6167
6168 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006169 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006170 </td>
6171
6172 <td class="entry_range">
6173 </td>
6174
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006175 <td class="entry_tags">
6176 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006177 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006178 </ul>
6179 </td>
6180
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006181 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006182
6183
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006184 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6185 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006186
6187
6188 <tr class="entry" id="controls_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006189 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006190 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006191 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006192 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006193 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006194
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006195 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006196
6197
6198 </td> <!-- entry_type -->
6199
6200 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006201 <p>Orientation of JPEG image to
6202write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006203 </td>
6204
6205 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006206 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006207 </td>
6208
6209 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006210 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006211 </td>
6212
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006213 <td class="entry_tags">
6214 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006215 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006216 </ul>
6217 </td>
6218
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006219 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006220
6221
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006222 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6223 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006224
6225
6226 <tr class="entry" id="controls_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006227 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006228 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006229 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006230 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006231 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006232
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006233 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006234
6235
6236 </td> <!-- entry_type -->
6237
6238 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006239 <p>Compression quality of the final JPEG
6240image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006241 </td>
6242
6243 <td class="entry_units">
6244 </td>
6245
6246 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006247 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006248 </td>
6249
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006250 <td class="entry_tags">
6251 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006252 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006253 </ul>
6254 </td>
6255
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006256 </tr>
6257 <tr class="entries_header">
6258 <th class="th_details" colspan="5">Details</th>
6259 </tr>
6260 <tr class="entry_cont">
6261 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006262 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006263 </td>
6264 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006265
6266
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006267 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6268 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006269
6270
6271 <tr class="entry" id="controls_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006272 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006273 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006274 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006275 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006276 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006277
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006278 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006279
6280
6281 </td> <!-- entry_type -->
6282
6283 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006284 <p>Compression quality of JPEG
6285thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006286 </td>
6287
6288 <td class="entry_units">
6289 </td>
6290
6291 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006292 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006293 </td>
6294
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006295 <td class="entry_tags">
6296 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006297 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006298 </ul>
6299 </td>
6300
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006301 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006302
6303
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006304 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6305 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006306
6307
6308 <tr class="entry" id="controls_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006309 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006310 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006311 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006312 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006313 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006314 <span class="entry_type_container">x</span>
6315
6316 <span class="entry_type_array">
6317 2
6318 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006319 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006320
6321
6322 </td> <!-- entry_type -->
6323
6324 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006325 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006326 </td>
6327
6328 <td class="entry_units">
6329 </td>
6330
6331 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006332 <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 -08006333 </td>
6334
6335 <td class="entry_tags">
6336 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006337 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006338 </ul>
6339 </td>
6340
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006341 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006342 <tr class="entries_header">
6343 <th class="th_details" colspan="5">Details</th>
6344 </tr>
6345 <tr class="entry_cont">
6346 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006347 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6348but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006349<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6350the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006351 </td>
6352 </tr>
6353
6354
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006355 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6356 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006357
6358
6359
6360 <!-- end of kind -->
6361 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006362 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006363
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006364 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006365 <tr>
6366 <th class="th_name">Property Name</th>
6367 <th class="th_type">Type</th>
6368 <th class="th_description">Description</th>
6369 <th class="th_units">Units</th>
6370 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006371 <th class="th_tags">Tags</th>
6372 </tr>
6373 </thead>
6374
6375 <tbody>
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386 <tr class="entry" id="static_android.jpeg.availableThumbnailSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006387 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006388 android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006389 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006390 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006391 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006392 <span class="entry_type_container">x</span>
6393
6394 <span class="entry_type_array">
6395 2 x n
6396 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006397 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006398
6399
6400 </td> <!-- entry_type -->
6401
6402 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006403 <p>Supported resolutions for the JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006404 </td>
6405
6406 <td class="entry_units">
6407 </td>
6408
6409 <td class="entry_range">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006410 <p>Will include at least one valid resolution,<wbr/> plus
6411(0,<wbr/>0) for no thumbnail generation,<wbr/> and each size will be distinct.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006412 </td>
6413
6414 <td class="entry_tags">
6415 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006416 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006417 </ul>
6418 </td>
6419
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006420 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006421 <tr class="entries_header">
6422 <th class="th_details" colspan="5">Details</th>
6423 </tr>
6424 <tr class="entry_cont">
6425 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006426 <p>Below condiditions will be satisfied for this size list:</p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006427<ul>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006428<li>The sizes will be sorted by increasing pixel area (width x height).<wbr/>
6429If several resolutions have the same area,<wbr/> they will be sorted by increasing width.<wbr/></li>
6430<li>The aspect ratio of the largest thumbnail size will be same as the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006431aspect 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 -08006432The largest size is defined as the size that has the largest pixel area
Igor Murashkin0b080452013-12-27 15:30:25 -08006433in a given size list.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006434<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 -08006435one corresponding size that has the same aspect ratio in availableThumbnailSizes,<wbr/>
6436and vice versa.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006437<li>All non (0,<wbr/> 0) sizes will have non-zero widths and heights.<wbr/></li>
Igor Murashkin0b080452013-12-27 15:30:25 -08006438</ul>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006439 </td>
6440 </tr>
6441
6442
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006443 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6444 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006445
6446
6447 <tr class="entry" id="static_android.jpeg.maxSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006448 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006449 android.<wbr/>jpeg.<wbr/>max<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006450 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006451 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006452 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006453
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006454 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006455
6456
6457 </td> <!-- entry_type -->
6458
6459 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006460 <p>Maximum size in bytes for the compressed
6461JPEG buffer</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006462 </td>
6463
6464 <td class="entry_units">
6465 </td>
6466
6467 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006468 <p>Must be large enough to fit any JPEG produced by
6469the camera</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006470 </td>
6471
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006472 <td class="entry_tags">
6473 </td>
6474
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006475 </tr>
6476 <tr class="entries_header">
6477 <th class="th_details" colspan="5">Details</th>
6478 </tr>
6479 <tr class="entry_cont">
6480 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006481 <p>This is used for sizing the gralloc buffers for
6482JPEG</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006483 </td>
6484 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006485
6486
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006487 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6488 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006489
6490
6491
6492 <!-- end of kind -->
6493 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006494 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006495
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006496 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006497 <tr>
6498 <th class="th_name">Property Name</th>
6499 <th class="th_type">Type</th>
6500 <th class="th_description">Description</th>
6501 <th class="th_units">Units</th>
6502 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006503 <th class="th_tags">Tags</th>
6504 </tr>
6505 </thead>
6506
6507 <tbody>
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518 <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006519 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006520 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006521 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006522 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006523 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006524 <span class="entry_type_container">x</span>
6525
6526 <span class="entry_type_array">
6527 3
6528 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006529 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006530 <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 -08006531
6532
6533 </td> <!-- entry_type -->
6534
6535 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006536 <p>GPS coordinates to include in output JPEG
6537EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006538 </td>
6539
6540 <td class="entry_units">
6541 </td>
6542
6543 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006544 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006545 </td>
6546
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006547 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006548 <ul class="entry_tags">
6549 <li><a href="#tag_BC">BC</a></li>
6550 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006551 </td>
6552
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006553 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006554
6555
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006556 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6557 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006558
6559
6560 <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006561 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006562 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006563 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006564 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006565 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006566
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006567 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006568
6569
6570 </td> <!-- entry_type -->
6571
6572 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006573 <p>32 characters describing GPS algorithm to
6574include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006575 </td>
6576
6577 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006578 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006579 </td>
6580
6581 <td class="entry_range">
6582 </td>
6583
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006584 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006585 <ul class="entry_tags">
6586 <li><a href="#tag_BC">BC</a></li>
6587 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006588 </td>
6589
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006590 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006591
6592
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006593 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6594 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006595
6596
6597 <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006598 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006599 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006600 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006601 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006602 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006603
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006604 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006605
6606
6607 </td> <!-- entry_type -->
6608
6609 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006610 <p>Time GPS fix was made to include in
6611EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006612 </td>
6613
6614 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006615 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006616 </td>
6617
6618 <td class="entry_range">
6619 </td>
6620
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006621 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006622 <ul class="entry_tags">
6623 <li><a href="#tag_BC">BC</a></li>
6624 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006625 </td>
6626
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006627 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006628
6629
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006630 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6631 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006632
6633
6634 <tr class="entry" id="dynamic_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006635 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006636 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006637 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006638 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006639 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006640
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006641 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006642
6643
6644 </td> <!-- entry_type -->
6645
6646 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006647 <p>Orientation of JPEG image to
6648write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006649 </td>
6650
6651 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006652 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006653 </td>
6654
6655 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006656 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006657 </td>
6658
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006659 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006660 <ul class="entry_tags">
6661 <li><a href="#tag_BC">BC</a></li>
6662 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006663 </td>
6664
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006665 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006666
6667
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006668 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6669 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006670
6671
6672 <tr class="entry" id="dynamic_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006673 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006674 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006675 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006676 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006677 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006678
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006679 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006680
6681
6682 </td> <!-- entry_type -->
6683
6684 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006685 <p>Compression quality of the final JPEG
6686image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006687 </td>
6688
6689 <td class="entry_units">
6690 </td>
6691
6692 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006693 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006694 </td>
6695
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006696 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006697 <ul class="entry_tags">
6698 <li><a href="#tag_BC">BC</a></li>
6699 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006700 </td>
6701
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006702 </tr>
6703 <tr class="entries_header">
6704 <th class="th_details" colspan="5">Details</th>
6705 </tr>
6706 <tr class="entry_cont">
6707 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006708 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006709 </td>
6710 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006711
6712
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006713 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6714 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006715
6716
6717 <tr class="entry" id="dynamic_android.jpeg.size">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006718 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006719 android.<wbr/>jpeg.<wbr/>size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006720 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006721 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006722 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006723
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006724 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006725
6726
6727 </td> <!-- entry_type -->
6728
6729 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006730 <p>The size of the compressed JPEG image,<wbr/> in
6731bytes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006732 </td>
6733
6734 <td class="entry_units">
6735 </td>
6736
6737 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08006738 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006739 </td>
6740
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006741 <td class="entry_tags">
6742 </td>
6743
6744 </tr>
6745 <tr class="entries_header">
6746 <th class="th_details" colspan="5">Details</th>
6747 </tr>
6748 <tr class="entry_cont">
6749 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006750 <p>If no JPEG output is produced for the request,<wbr/>
6751this must be 0.<wbr/></p>
6752<p>Otherwise,<wbr/> this describes the real size of the compressed
6753JPEG image placed in the output stream.<wbr/> More specifically,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006754if <a href="#static_android.jpeg.maxSize">android.<wbr/>jpeg.<wbr/>max<wbr/>Size</a> = 1000000,<wbr/> and a specific capture
6755has <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 -08006756the JPEG stream will be 1000000 bytes,<wbr/> of which the first
6757500000 make up the real data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006758 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006759 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006760
6761
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006762 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6763 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006764
6765
6766 <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006767 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006768 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006769 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006770 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006771 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006772
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006773 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006774
6775
6776 </td> <!-- entry_type -->
6777
6778 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006779 <p>Compression quality of JPEG
6780thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006781 </td>
6782
6783 <td class="entry_units">
6784 </td>
6785
6786 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006787 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006788 </td>
6789
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006790 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006791 <ul class="entry_tags">
6792 <li><a href="#tag_BC">BC</a></li>
6793 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006794 </td>
6795
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006796 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006797
6798
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006799 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6800 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006801
6802
6803 <tr class="entry" id="dynamic_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006804 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006805 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006806 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006807 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006808 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006809 <span class="entry_type_container">x</span>
6810
6811 <span class="entry_type_array">
6812 2
6813 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006814 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006815
6816
6817 </td> <!-- entry_type -->
6818
6819 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006820 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006821 </td>
6822
6823 <td class="entry_units">
6824 </td>
6825
6826 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006827 <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 -08006828 </td>
6829
6830 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006831 <ul class="entry_tags">
6832 <li><a href="#tag_BC">BC</a></li>
6833 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006834 </td>
6835
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006836 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006837 <tr class="entries_header">
6838 <th class="th_details" colspan="5">Details</th>
6839 </tr>
6840 <tr class="entry_cont">
6841 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006842 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6843but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006844<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6845the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006846 </td>
6847 </tr>
6848
6849
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006850 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6851 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006852
6853
6854
6855 <!-- end of kind -->
6856 </tbody>
6857
6858 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006859 <tr><td colspan="6" id="section_lens" class="section">lens</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006860
6861
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006862 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006863
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006864 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006865 <tr>
6866 <th class="th_name">Property Name</th>
6867 <th class="th_type">Type</th>
6868 <th class="th_description">Description</th>
6869 <th class="th_units">Units</th>
6870 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006871 <th class="th_tags">Tags</th>
6872 </tr>
6873 </thead>
6874
6875 <tbody>
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886 <tr class="entry" id="controls_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006887 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006888 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006889 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006890 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006891 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006892
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006893 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006894
6895
6896 </td> <!-- entry_type -->
6897
6898 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08006899 <p>The ratio of lens focal length to the effective
6900aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006901 </td>
6902
6903 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006904 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006905 </td>
6906
6907 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006908 <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 -08006909 </td>
6910
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006911 <td class="entry_tags">
6912 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006913 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006914 </ul>
6915 </td>
6916
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006917 </tr>
6918 <tr class="entries_header">
6919 <th class="th_details" colspan="5">Details</th>
6920 </tr>
6921 <tr class="entry_cont">
6922 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08006923 <p>This will only be supported on the camera devices that
6924have variable aperture lens.<wbr/> The aperture value can only be
6925one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
6926<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
6927this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
6928<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
6929to achieve manual exposure control.<wbr/></p>
6930<p>The requested aperture value may take several frames to reach the
6931requested value; the camera device will report the current (intermediate)
Zhijun He5169ce12014-01-24 16:48:25 -08006932aperture size in capture result metadata while the aperture is changing.<wbr/>
6933While 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 -08006934<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
6935the ON modes,<wbr/> this will be overridden by the camera device
6936auto-exposure algorithm,<wbr/> the overridden values are then provided
6937back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006938 </td>
6939 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006940
6941
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006942 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6943 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006944
6945
6946 <tr class="entry" id="controls_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006947 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006948 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006949 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006950 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006951 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006952
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006953 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006954
6955
6956 </td> <!-- entry_type -->
6957
6958 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006959 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006960 </td>
6961
6962 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006963 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006964 </td>
6965
6966 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006967 <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 -08006968 </td>
6969
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006970 <td class="entry_tags">
6971 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006972 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006973 </ul>
6974 </td>
6975
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006976 </tr>
6977 <tr class="entries_header">
6978 <th class="th_details" colspan="5">Details</th>
6979 </tr>
6980 <tr class="entry_cont">
6981 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006982 <p>This will not be supported on most camera devices.<wbr/> On devices
6983where this is supported,<wbr/> this may only be set to one of the
6984values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
6985<p>Lens filters are typically used to lower the amount of light the
6986sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
6987step is the standard logarithmic representation,<wbr/> which are
6988non-negative,<wbr/> and inversely proportional to the amount of light
6989hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
6990in no reduction of the incoming light,<wbr/> and setting this to 2 would
6991mean that the filter is set to reduce incoming light by two stops
6992(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08006993<p>It may take several frames before the lens filter density changes
6994to the requested value.<wbr/> While the filter density is still changing,<wbr/>
6995<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 -08006996 </td>
6997 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006998
6999
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007000 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7001 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007002
7003
7004 <tr class="entry" id="controls_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007005 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007006 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007007 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007008 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007009 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007010
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007011 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007012
7013
7014 </td> <!-- entry_type -->
7015
7016 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007017 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007018 </td>
7019
7020 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007021 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007022 </td>
7023
7024 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007025 <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 -08007026 </td>
7027
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007028 <td class="entry_tags">
7029 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007030 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007031 </ul>
7032 </td>
7033
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007034 </tr>
7035 <tr class="entries_header">
7036 <th class="th_details" colspan="5">Details</th>
7037 </tr>
7038 <tr class="entry_cont">
7039 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007040 <p>This setting controls the physical focal length of the camera
7041device's lens.<wbr/> Changing the focal length changes the field of
7042view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7043<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
7044setting won't be applied instantaneously,<wbr/> and it may take several
Zhijun He5169ce12014-01-24 16:48:25 -08007045frames before the lens can change to the requested focal length.<wbr/>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007046While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7047be set to MOVING.<wbr/></p>
7048<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007049 </td>
7050 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007051
7052
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007053 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7054 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007055
7056
7057 <tr class="entry" id="controls_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007058 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007059 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007060 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007061 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007062 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007063
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007064 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007065
7066
7067 </td> <!-- entry_type -->
7068
7069 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007070 <p>Distance to plane of sharpest focus,<wbr/>
7071measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007072 </td>
7073
7074 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007075 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007076 </td>
7077
7078 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007079 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007080 </td>
7081
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007082 <td class="entry_tags">
7083 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007084 <li><a href="#tag_BC">BC</a></li>
7085 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007086 </ul>
7087 </td>
7088
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007089 </tr>
7090 <tr class="entries_header">
7091 <th class="th_details" colspan="5">Details</th>
7092 </tr>
7093 <tr class="entry_cont">
7094 <td class="entry_details" colspan="5">
Zhijun He5169ce12014-01-24 16:48:25 -08007095 <p>0 means infinity focus.<wbr/> Used value will be clamped
7096to [0,<wbr/> <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>].<wbr/></p>
7097<p>Like <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> this setting won't be applied
7098instantaneously,<wbr/> and it may take several frames before the lens
7099can move to the requested focus distance.<wbr/> While the lens is still moving,<wbr/>
7100<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 -08007101 </td>
7102 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007103
7104
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007105 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7106 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007107
7108
7109 <tr class="entry" id="controls_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007110 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007111 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007112 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007113 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007114 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007115
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007116 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007117
7118 <ul class="entry_type_enum">
7119 <li>
7120 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007121 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007122 </li>
7123 <li>
7124 <span class="entry_type_enum_name">ON</span>
7125 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007126 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007127 </li>
7128 </ul>
7129
7130 </td> <!-- entry_type -->
7131
7132 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007133 <p>Sets whether the camera device uses optical image stabilization (OIS)
7134when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007135 </td>
7136
7137 <td class="entry_units">
7138 </td>
7139
7140 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08007141 <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 -08007142 </td>
7143
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007144 <td class="entry_tags">
7145 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007146 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007147 </ul>
7148 </td>
7149
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007150 </tr>
7151 <tr class="entries_header">
7152 <th class="th_details" colspan="5">Details</th>
7153 </tr>
7154 <tr class="entry_cont">
7155 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08007156 <p>OIS is used to compensate for motion blur due to small movements of
7157the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
7158use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
7159allows for longer exposure times before camera shake becomes
7160apparent.<wbr/></p>
7161<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007162 </td>
7163 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007164
7165
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007166 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7167 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007168
7169
7170
7171 <!-- end of kind -->
7172 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007173 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007174
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007175 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007176 <tr>
7177 <th class="th_name">Property Name</th>
7178 <th class="th_type">Type</th>
7179 <th class="th_description">Description</th>
7180 <th class="th_units">Units</th>
7181 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007182 <th class="th_tags">Tags</th>
7183 </tr>
7184 </thead>
7185
7186 <tbody>
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199 <tr class="entry" id="static_android.lens.info.availableApertures">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007200 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007201 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007202 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007203 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007204 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007205 <span class="entry_type_container">x</span>
7206
7207 <span class="entry_type_array">
7208 n
7209 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007210 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007211
7212
7213 </td> <!-- entry_type -->
7214
7215 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007216 <p>List of supported aperture
Zhijun He1b58d382014-01-10 10:22:53 -08007217values.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007218 </td>
7219
7220 <td class="entry_units">
7221 </td>
7222
7223 <td class="entry_range">
Zhijun He5169ce12014-01-24 16:48:25 -08007224 <p>one entry required,<wbr/> &gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007225 </td>
7226
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007227 <td class="entry_tags">
7228 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007229 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007230 </ul>
7231 </td>
7232
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007233 </tr>
7234 <tr class="entries_header">
7235 <th class="th_details" colspan="5">Details</th>
7236 </tr>
7237 <tr class="entry_cont">
7238 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007239 <p>If the camera device doesn't support variable apertures,<wbr/>
7240listed value will be the fixed aperture.<wbr/></p>
7241<p>If the camera device supports variable apertures,<wbr/> the aperture value
7242in this list will be sorted in ascending order.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007243 </td>
7244 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007245
7246
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007247 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7248 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007249
7250
7251 <tr class="entry" id="static_android.lens.info.availableFilterDensities">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007252 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007253 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007254 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007255 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007256 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007257 <span class="entry_type_container">x</span>
7258
7259 <span class="entry_type_array">
7260 n
7261 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007262 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007263
7264
7265 </td> <!-- entry_type -->
7266
7267 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007268 <p>List of supported neutral density filter values for
7269<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007270 </td>
7271
7272 <td class="entry_units">
7273 </td>
7274
7275 <td class="entry_range">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007276 <p>At least one value is required.<wbr/> Values must be &gt;= 0.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007277 </td>
7278
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007279 <td class="entry_tags">
7280 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007281 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007282 </ul>
7283 </td>
7284
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007285 </tr>
7286 <tr class="entries_header">
7287 <th class="th_details" colspan="5">Details</th>
7288 </tr>
7289 <tr class="entry_cont">
7290 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007291 <p>If changing <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> is not supported,<wbr/>
7292availableFilterDensities must contain only 0.<wbr/> Otherwise,<wbr/> this
7293list contains only the exact filter density values available on
7294this camera device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007295 </td>
7296 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007297
7298
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007299 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7300 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007301
7302
7303 <tr class="entry" id="static_android.lens.info.availableFocalLengths">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007304 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007305 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007306 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007307 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007308 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007309 <span class="entry_type_container">x</span>
7310
7311 <span class="entry_type_array">
7312 n
7313 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007314 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007315 <div class="entry_type_notes">The list of available focal lengths</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007316
7317
7318 </td> <!-- entry_type -->
7319
7320 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007321 <p>The available focal lengths for this device for use with
7322<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007323 </td>
7324
7325 <td class="entry_units">
7326 </td>
7327
7328 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007329 <p>Each value in this list must be &gt; 0.<wbr/> This list must
7330contain at least one value.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007331 </td>
7332
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007333 <td class="entry_tags">
7334 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007335 <li><a href="#tag_BC">BC</a></li>
7336 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007337 </ul>
7338 </td>
7339
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007340 </tr>
7341 <tr class="entries_header">
7342 <th class="th_details" colspan="5">Details</th>
7343 </tr>
7344 <tr class="entry_cont">
7345 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007346 <p>If optical zoom is not supported,<wbr/> this will only report
7347a single value corresponding to the static focal length of the
7348device.<wbr/> Otherwise,<wbr/> this will report every focal length supported
7349by the device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007350 </td>
7351 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007352
7353
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007354 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7355 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007356
7357
7358 <tr class="entry" id="static_android.lens.info.availableOpticalStabilization">
Ruben Brunk218639c2014-01-15 18:09:41 -08007359 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007360 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007361 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007362 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007363 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007364 <span class="entry_type_container">x</span>
7365
7366 <span class="entry_type_array">
7367 n
7368 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007369 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007370 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007371
7372
7373 </td> <!-- entry_type -->
7374
7375 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007376 <p>List containing a subset of the optical image
7377stabilization (OIS) modes specified in
7378<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 -08007379 </td>
7380
7381 <td class="entry_units">
7382 </td>
7383
7384 <td class="entry_range">
7385 </td>
7386
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007387 <td class="entry_tags">
7388 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007389 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007390 </ul>
7391 </td>
7392
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007393 </tr>
Ruben Brunk218639c2014-01-15 18:09:41 -08007394 <tr class="entries_header">
7395 <th class="th_details" colspan="5">Details</th>
7396 </tr>
7397 <tr class="entry_cont">
7398 <td class="entry_details" colspan="5">
7399 <p>If OIS is not implemented for a given camera device,<wbr/> this should
7400contain only OFF.<wbr/></p>
7401 </td>
7402 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007403
7404
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007405 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7406 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007407
7408
7409 <tr class="entry" id="static_android.lens.info.geometricCorrectionMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007410 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007411 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007412 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007413 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007414 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007415 <span class="entry_type_container">x</span>
7416
7417 <span class="entry_type_array">
7418 2 x 3 x n x m
7419 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007420 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007421 <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 -08007422
7423
7424 </td> <!-- entry_type -->
7425
7426 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007427 <p>A low-resolution map for correction of
7428geometric distortions and chromatic aberrations,<wbr/> per
7429color channel</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007430 </td>
7431
7432 <td class="entry_units">
7433 </td>
7434
7435 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007436 <p>N,<wbr/> M &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007437 </td>
7438
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007439 <td class="entry_tags">
7440 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007441 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007442 </ul>
7443 </td>
7444
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007445 </tr>
7446 <tr class="entries_header">
7447 <th class="th_details" colspan="5">Details</th>
7448 </tr>
7449 <tr class="entry_cont">
7450 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007451 <p>[DNG wants a function instead].<wbr/> What's easiest
7452for implementers? With an array size (M,<wbr/> N),<wbr/> entry (i,<wbr/>
7453j) provides the destination for pixel (i/<wbr/>(M-1) * width,<wbr/>
7454j/<wbr/>(N-1) * height).<wbr/> Data is row-major,<wbr/> with each array
7455entry 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 -08007456 </td>
7457 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007458
7459
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007460 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7461 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007462
7463
7464 <tr class="entry" id="static_android.lens.info.geometricCorrectionMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007465 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007466 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007467 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007468 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007469 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007470 <span class="entry_type_container">x</span>
7471
7472 <span class="entry_type_array">
7473 2
7474 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007475 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007476 <div class="entry_type_notes">width and height of geometric correction map</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007477
7478
7479 </td> <!-- entry_type -->
7480
7481 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007482 <p>Dimensions of geometric correction
7483map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007484 </td>
7485
7486 <td class="entry_units">
7487 </td>
7488
7489 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007490 <p>Both values &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007491 </td>
7492
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007493 <td class="entry_tags">
7494 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007495 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007496 </ul>
7497 </td>
7498
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007499 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007500
7501
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007502 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7503 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007504
7505
7506 <tr class="entry" id="static_android.lens.info.hyperfocalDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007507 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007508 android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007509 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007510 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007511 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007512
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007513 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007514
7515
7516 </td> <!-- entry_type -->
7517
7518 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007519 <p>Hyperfocal distance for this lens; set to
75200 if fixed focus</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007521 </td>
7522
7523 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007524 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007525 </td>
7526
7527 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007528 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007529 </td>
7530
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007531 <td class="entry_tags">
7532 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007533 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007534 </ul>
7535 </td>
7536
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007537 </tr>
7538 <tr class="entries_header">
7539 <th class="th_details" colspan="5">Details</th>
7540 </tr>
7541 <tr class="entry_cont">
7542 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007543 <p>The hyperfocal distance is used for the old
7544API's 'fixed' setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007545 </td>
7546 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007547
7548
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007549 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7550 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007551
7552
7553 <tr class="entry" id="static_android.lens.info.minimumFocusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007554 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007555 android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007556 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007557 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007558 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007559
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007560 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007561
7562
7563 </td> <!-- entry_type -->
7564
7565 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007566 <p>Shortest distance from frontmost surface
7567of the lens that can be focused correctly</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007568 </td>
7569
7570 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007571 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007572 </td>
7573
7574 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007575 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007576 </td>
7577
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007578 <td class="entry_tags">
7579 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007580 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007581 </ul>
7582 </td>
7583
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007584 </tr>
7585 <tr class="entries_header">
7586 <th class="th_details" colspan="5">Details</th>
7587 </tr>
7588 <tr class="entry_cont">
7589 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007590 <p>If the lens is fixed-focus,<wbr/> this should be
75910</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007592 </td>
7593 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007594
7595
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007596 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7597 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007598
7599
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007600 <tr class="entry" id="static_android.lens.info.shadingMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007601 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007602 android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007603 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007604 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007605 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007606 <span class="entry_type_container">x</span>
7607
7608 <span class="entry_type_array">
7609 2
7610 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007611 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007612 <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 -08007613
7614
7615 </td> <!-- entry_type -->
7616
7617 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007618 <p>Dimensions of lens shading map.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007619 </td>
7620
7621 <td class="entry_units">
7622 </td>
7623
7624 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007625 <p>Both values &gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007626 </td>
7627
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007628 <td class="entry_tags">
7629 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007630 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007631 </ul>
7632 </td>
7633
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007634 </tr>
7635 <tr class="entries_header">
7636 <th class="th_details" colspan="5">Details</th>
7637 </tr>
7638 <tr class="entry_cont">
7639 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007640 <p>The map should be on the order of 30-40 rows and columns,<wbr/> and
7641must be smaller than 64x64.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007642 </td>
7643 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007644
7645
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007646 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7647 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007648
7649
7650
7651
7652
7653 <tr class="entry" id="static_android.lens.facing">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007654 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007655 android.<wbr/>lens.<wbr/>facing
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007656 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007657 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007658 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007659
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007660 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007661
7662 <ul class="entry_type_enum">
7663 <li>
7664 <span class="entry_type_enum_name">FRONT</span>
7665 </li>
7666 <li>
7667 <span class="entry_type_enum_name">BACK</span>
7668 </li>
7669 </ul>
7670
7671 </td> <!-- entry_type -->
7672
7673 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007674 <p>Direction the camera faces relative to
7675device screen</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007676 </td>
7677
7678 <td class="entry_units">
7679 </td>
7680
7681 <td class="entry_range">
7682 </td>
7683
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007684 <td class="entry_tags">
7685 </td>
7686
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007687 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007688
7689
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007690 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7691 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007692
7693
7694 <tr class="entry" id="static_android.lens.opticalAxisAngle">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007695 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007696 android.<wbr/>lens.<wbr/>optical<wbr/>Axis<wbr/>Angle
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007697 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007698 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007699 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007700 <span class="entry_type_container">x</span>
7701
7702 <span class="entry_type_array">
7703 2
7704 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007705 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007706 <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 -08007707
7708
7709 </td> <!-- entry_type -->
7710
7711 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007712 <p>Relative angle of camera optical axis to the
7713perpendicular axis from the display</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007714 </td>
7715
7716 <td class="entry_units">
7717 </td>
7718
7719 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007720 <p>[0-90) for first angle,<wbr/> [0-360) for second</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007721 </td>
7722
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007723 <td class="entry_tags">
7724 <ul class="entry_tags">
7725 <li><a href="#tag_ADV">ADV</a></li>
7726 </ul>
7727 </td>
7728
7729 </tr>
7730 <tr class="entries_header">
7731 <th class="th_details" colspan="5">Details</th>
7732 </tr>
7733 <tr class="entry_cont">
7734 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007735 <p>Examples:</p>
7736<p>(0,<wbr/>0) means that the camera optical axis
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007737is perpendicular to the display surface;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007738<p>(45,<wbr/>0) means that the camera points 45 degrees up when
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007739device is held upright;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007740<p>(45,<wbr/>90) means the camera points 45 degrees to the right when
7741the device is held upright.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007742<p>Use FACING field to determine perpendicular outgoing
Igor Murashkin0b080452013-12-27 15:30:25 -08007743direction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007744 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007745 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007746
7747
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007748 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7749 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007750
7751
7752 <tr class="entry" id="static_android.lens.position">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007753 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007754 android.<wbr/>lens.<wbr/>position
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007755 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007756 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007757 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007758 <span class="entry_type_container">x</span>
7759
7760 <span class="entry_type_array">
7761 3, location in mm, in the sensor coordinate
7762 system
7763 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007764 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007765
7766
7767 </td> <!-- entry_type -->
7768
7769 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007770 <p>Coordinates of camera optical axis on
7771device</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007772 </td>
7773
7774 <td class="entry_units">
7775 </td>
7776
7777 <td class="entry_range">
7778 </td>
7779
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007780 <td class="entry_tags">
7781 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007782 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007783 </ul>
7784 </td>
7785
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007786 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007787
7788
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007789 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7790 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007791
7792
7793
7794 <!-- end of kind -->
7795 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007796 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007797
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007798 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007799 <tr>
7800 <th class="th_name">Property Name</th>
7801 <th class="th_type">Type</th>
7802 <th class="th_description">Description</th>
7803 <th class="th_units">Units</th>
7804 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007805 <th class="th_tags">Tags</th>
7806 </tr>
7807 </thead>
7808
7809 <tbody>
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820 <tr class="entry" id="dynamic_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007821 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007822 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007823 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007824 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007825 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007826
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007827 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007828
7829
7830 </td> <!-- entry_type -->
7831
7832 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08007833 <p>The ratio of lens focal length to the effective
7834aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007835 </td>
7836
7837 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007838 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007839 </td>
7840
7841 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007842 <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 -08007843 </td>
7844
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007845 <td class="entry_tags">
7846 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007847 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007848 </ul>
7849 </td>
7850
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007851 </tr>
7852 <tr class="entries_header">
7853 <th class="th_details" colspan="5">Details</th>
7854 </tr>
7855 <tr class="entry_cont">
7856 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007857 <p>This will only be supported on the camera devices that
7858have variable aperture lens.<wbr/> The aperture value can only be
7859one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
7860<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
7861this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
7862<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
7863to achieve manual exposure control.<wbr/></p>
7864<p>The requested aperture value may take several frames to reach the
7865requested value; the camera device will report the current (intermediate)
Zhijun He5169ce12014-01-24 16:48:25 -08007866aperture size in capture result metadata while the aperture is changing.<wbr/>
7867While 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 -08007868<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
7869the ON modes,<wbr/> this will be overridden by the camera device
7870auto-exposure algorithm,<wbr/> the overridden values are then provided
7871back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007872 </td>
7873 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007874
7875
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007876 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7877 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007878
7879
7880 <tr class="entry" id="dynamic_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007881 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007882 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007883 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007884 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007885 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007886
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007887 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007888
7889
7890 </td> <!-- entry_type -->
7891
7892 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007893 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007894 </td>
7895
7896 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007897 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007898 </td>
7899
7900 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007901 <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 -08007902 </td>
7903
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007904 <td class="entry_tags">
7905 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007906 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007907 </ul>
7908 </td>
7909
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007910 </tr>
7911 <tr class="entries_header">
7912 <th class="th_details" colspan="5">Details</th>
7913 </tr>
7914 <tr class="entry_cont">
7915 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007916 <p>This will not be supported on most camera devices.<wbr/> On devices
7917where this is supported,<wbr/> this may only be set to one of the
7918values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
7919<p>Lens filters are typically used to lower the amount of light the
7920sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
7921step is the standard logarithmic representation,<wbr/> which are
7922non-negative,<wbr/> and inversely proportional to the amount of light
7923hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
7924in no reduction of the incoming light,<wbr/> and setting this to 2 would
7925mean that the filter is set to reduce incoming light by two stops
7926(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08007927<p>It may take several frames before the lens filter density changes
7928to the requested value.<wbr/> While the filter density is still changing,<wbr/>
7929<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 -08007930 </td>
7931 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007932
7933
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007934 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7935 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007936
7937
7938 <tr class="entry" id="dynamic_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007939 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007940 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007941 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007942 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007943 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007944
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007945 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007946
7947
7948 </td> <!-- entry_type -->
7949
7950 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007951 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007952 </td>
7953
7954 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007955 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007956 </td>
7957
7958 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007959 <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 -08007960 </td>
7961
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007962 <td class="entry_tags">
7963 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007964 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007965 </ul>
7966 </td>
7967
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007968 </tr>
7969 <tr class="entries_header">
7970 <th class="th_details" colspan="5">Details</th>
7971 </tr>
7972 <tr class="entry_cont">
7973 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007974 <p>This setting controls the physical focal length of the camera
7975device's lens.<wbr/> Changing the focal length changes the field of
7976view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7977<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
7978setting won't be applied instantaneously,<wbr/> and it may take several
Zhijun He5169ce12014-01-24 16:48:25 -08007979frames before the lens can change to the requested focal length.<wbr/>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007980While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7981be set to MOVING.<wbr/></p>
7982<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007983 </td>
7984 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007985
7986
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007987 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7988 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007989
7990
7991 <tr class="entry" id="dynamic_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007992 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007993 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007994 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007995 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007996 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007997
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007998 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007999
8000
8001 </td> <!-- entry_type -->
8002
8003 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008004 <p>Distance to plane of sharpest focus,<wbr/>
8005measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008006 </td>
8007
8008 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008009 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008010 </td>
8011
8012 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08008013 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008014 </td>
8015
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008016 <td class="entry_tags">
8017 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008018 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008019 </ul>
8020 </td>
8021
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008022 </tr>
8023 <tr class="entries_header">
8024 <th class="th_details" colspan="5">Details</th>
8025 </tr>
8026 <tr class="entry_cont">
8027 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008028 <p>Should be zero for fixed-focus cameras</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008029 </td>
8030 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008031
8032
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008033 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8034 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008035
8036
8037 <tr class="entry" id="dynamic_android.lens.focusRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008038 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008039 android.<wbr/>lens.<wbr/>focus<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008040 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008041 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008042 <span class="entry_type_name">float</span>
Zhijun He50451ad2013-09-26 10:27:47 -07008043 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008044
Zhijun He50451ad2013-09-26 10:27:47 -07008045 <span class="entry_type_array">
8046 2
8047 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008048 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08008049 <div class="entry_type_notes">Range of scene distances that are in focus</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008050
8051
8052 </td> <!-- entry_type -->
8053
8054 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008055 <p>The range of scene distances that are in
8056sharp focus (depth of field)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008057 </td>
8058
8059 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008060 pair of focus distances in diopters: (near,<wbr/>
8061 far)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008062 </td>
8063
8064 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08008065 <p>&gt;=0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008066 </td>
8067
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008068 <td class="entry_tags">
8069 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008070 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008071 </ul>
8072 </td>
8073
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008074 </tr>
8075 <tr class="entries_header">
8076 <th class="th_details" colspan="5">Details</th>
8077 </tr>
8078 <tr class="entry_cont">
8079 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008080 <p>If variable focus not supported,<wbr/> can still report
8081fixed depth of field range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008082 </td>
8083 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008084
8085
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008086 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8087 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008088
8089
8090 <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008091 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008092 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008093 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008094 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008095 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008096
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008097 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008098
8099 <ul class="entry_type_enum">
8100 <li>
8101 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008102 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008103 </li>
8104 <li>
8105 <span class="entry_type_enum_name">ON</span>
8106 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008107 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008108 </li>
8109 </ul>
8110
8111 </td> <!-- entry_type -->
8112
8113 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08008114 <p>Sets whether the camera device uses optical image stabilization (OIS)
8115when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008116 </td>
8117
8118 <td class="entry_units">
8119 </td>
8120
8121 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08008122 <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 -08008123 </td>
8124
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008125 <td class="entry_tags">
8126 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008127 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008128 </ul>
8129 </td>
8130
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008131 </tr>
8132 <tr class="entries_header">
8133 <th class="th_details" colspan="5">Details</th>
8134 </tr>
8135 <tr class="entry_cont">
8136 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08008137 <p>OIS is used to compensate for motion blur due to small movements of
8138the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
8139use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
8140allows for longer exposure times before camera shake becomes
8141apparent.<wbr/></p>
8142<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008143 </td>
8144 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008145
8146
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008147 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8148 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008149
8150
8151 <tr class="entry" id="dynamic_android.lens.state">
Zhijun He5169ce12014-01-24 16:48:25 -08008152 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008153 android.<wbr/>lens.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008154 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008155 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008156 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008157
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008158 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008159
8160 <ul class="entry_type_enum">
8161 <li>
8162 <span class="entry_type_enum_name">STATIONARY</span>
Zhijun He5169ce12014-01-24 16:48:25 -08008163 <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
8164android.<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 -08008165 </li>
Igor Murashkin0e323a12013-09-06 11:50:48 -07008166 <li>
8167 <span class="entry_type_enum_name">MOVING</span>
Zhijun He5169ce12014-01-24 16:48:25 -08008168 <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
8169android.<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 -07008170 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008171 </ul>
8172
8173 </td> <!-- entry_type -->
8174
8175 <td class="entry_description">
Zhijun He5169ce12014-01-24 16:48:25 -08008176 <p>Current lens status.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008177 </td>
8178
8179 <td class="entry_units">
8180 </td>
8181
8182 <td class="entry_range">
8183 </td>
8184
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008185 <td class="entry_tags">
8186 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008187 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008188 </ul>
8189 </td>
8190
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008191 </tr>
Zhijun He5169ce12014-01-24 16:48:25 -08008192 <tr class="entries_header">
8193 <th class="th_details" colspan="5">Details</th>
8194 </tr>
8195 <tr class="entry_cont">
8196 <td class="entry_details" colspan="5">
8197 <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/>
8198<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/>
8199they may take several frames to reach the requested values.<wbr/> This state indicates
8200the current status of the lens parameters.<wbr/></p>
8201<p>When the state is STATIONARY,<wbr/> the lens parameters are not changing.<wbr/> This could be
8202either because the parameters are all fixed,<wbr/> or because the lens has had enough
8203time to reach the most recently-requested values.<wbr/>
8204If all these lens parameters are not changable for a camera device,<wbr/> as listed below:</p>
8205<ul>
8206<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
8207<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> parameter will always be 0.<wbr/></li>
8208<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/>
8209which means the optical zoom is not supported.<wbr/></li>
8210<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>
8211<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>
8212</ul>
8213<p>Then this state will always be STATIONARY.<wbr/></p>
8214<p>When the state is MOVING,<wbr/> it indicates that at least one of the lens parameters
8215is changing.<wbr/></p>
8216 </td>
8217 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008218
8219
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008220 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8221 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008222
8223
8224
8225 <!-- end of kind -->
8226 </tbody>
8227
8228 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008229 <tr><td colspan="6" id="section_noiseReduction" class="section">noiseReduction</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008230
8231
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008232 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008233
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008234 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008235 <tr>
8236 <th class="th_name">Property Name</th>
8237 <th class="th_type">Type</th>
8238 <th class="th_description">Description</th>
8239 <th class="th_units">Units</th>
8240 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008241 <th class="th_tags">Tags</th>
8242 </tr>
8243 </thead>
8244
8245 <tbody>
8246
8247
8248
8249
8250
8251
8252
8253
8254
8255
8256 <tr class="entry" id="controls_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008257 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008258 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008259 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008260 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008261 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008262
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008263 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008264
8265 <ul class="entry_type_enum">
8266 <li>
8267 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008268 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008269 </li>
8270 <li>
8271 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008272 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8273output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008274 </li>
8275 <li>
8276 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008277 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8278quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008279 </li>
8280 </ul>
8281
8282 </td> <!-- entry_type -->
8283
8284 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008285 <p>Mode of operation for the noise reduction
8286algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008287 </td>
8288
8289 <td class="entry_units">
8290 </td>
8291
8292 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008293 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008294 </td>
8295
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008296 <td class="entry_tags">
8297 <ul class="entry_tags">
8298 <li><a href="#tag_V1">V1</a></li>
8299 </ul>
8300 </td>
8301
8302 </tr>
8303 <tr class="entries_header">
8304 <th class="th_details" colspan="5">Details</th>
8305 </tr>
8306 <tr class="entry_cont">
8307 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008308 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8309will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008310<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8311will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8312will use the highest-quality noise filtering algorithms,<wbr/>
8313even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008314slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008315 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008316 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008317
8318
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008319 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8320 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008321
8322
8323 <tr class="entry" id="controls_android.noiseReduction.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008324 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008325 android.<wbr/>noise<wbr/>Reduction.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008326 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008327 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008328 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008329
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008330 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008331
8332
8333 </td> <!-- entry_type -->
8334
8335 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008336 <p>Control the amount of noise reduction
8337applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008338 </td>
8339
8340 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008341 1-10; 10 is max noise reduction
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008342 </td>
8343
8344 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008345 <p>1 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008346 </td>
8347
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008348 <td class="entry_tags">
8349 </td>
8350
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008351 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008352
8353
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008354 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8355 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008356
8357
8358
8359 <!-- end of kind -->
8360 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008361 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008362
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008363 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008364 <tr>
8365 <th class="th_name">Property Name</th>
8366 <th class="th_type">Type</th>
8367 <th class="th_description">Description</th>
8368 <th class="th_units">Units</th>
8369 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008370 <th class="th_tags">Tags</th>
8371 </tr>
8372 </thead>
8373
8374 <tbody>
8375
8376
8377
8378
8379
8380
8381
8382
8383
8384
8385 <tr class="entry" id="dynamic_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008386 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008387 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008388 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008389 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008390 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008391
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008392 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008393
8394 <ul class="entry_type_enum">
8395 <li>
8396 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008397 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008398 </li>
8399 <li>
8400 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008401 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8402output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008403 </li>
8404 <li>
8405 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008406 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8407quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008408 </li>
8409 </ul>
8410
8411 </td> <!-- entry_type -->
8412
8413 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008414 <p>Mode of operation for the noise reduction
8415algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008416 </td>
8417
8418 <td class="entry_units">
8419 </td>
8420
8421 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008422 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008423 </td>
8424
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008425 <td class="entry_tags">
8426 <ul class="entry_tags">
8427 <li><a href="#tag_V1">V1</a></li>
8428 </ul>
8429 </td>
8430
8431 </tr>
8432 <tr class="entries_header">
8433 <th class="th_details" colspan="5">Details</th>
8434 </tr>
8435 <tr class="entry_cont">
8436 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008437 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8438will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008439<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8440will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8441will use the highest-quality noise filtering algorithms,<wbr/>
8442even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008443slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008444 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008445 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008446
8447
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008448 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8449 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008450
8451
8452
8453 <!-- end of kind -->
8454 </tbody>
8455
8456 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008457 <tr><td colspan="6" id="section_quirks" class="section">quirks</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008458
8459
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008460 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008461
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008462 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008463 <tr>
8464 <th class="th_name">Property Name</th>
8465 <th class="th_type">Type</th>
8466 <th class="th_description">Description</th>
8467 <th class="th_units">Units</th>
8468 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008469 <th class="th_tags">Tags</th>
8470 </tr>
8471 </thead>
8472
8473 <tbody>
8474
8475
8476
8477
8478
8479
8480
8481
8482
8483
8484 <tr class="entry" id="static_android.quirks.meteringCropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008485 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008486 android.<wbr/>quirks.<wbr/>metering<wbr/>Crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008487 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008488 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008489 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008490
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008491 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008492
8493
8494 </td> <!-- entry_type -->
8495
8496 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008497 <p>If set to 1,<wbr/> the camera service does not
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008498scale 'normalized' coordinates with respect to the crop
Igor Murashkin0b080452013-12-27 15:30:25 -08008499region.<wbr/> This applies to metering input (a{e,<wbr/>f,<wbr/>wb}Region
8500and output (face rectangles).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008501 </td>
8502
8503 <td class="entry_units">
8504 </td>
8505
8506 <td class="entry_range">
8507 </td>
8508
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008509 <td class="entry_tags">
8510 </td>
8511
8512 </tr>
8513 <tr class="entries_header">
8514 <th class="th_details" colspan="5">Details</th>
8515 </tr>
8516 <tr class="entry_cont">
8517 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008518 <p>Normalized coordinates refer to those in the
8519(-1000,<wbr/>1000) range mentioned in the
8520android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008521<p>HAL implementations should instead always use and emit
Igor Murashkin0b080452013-12-27 15:30:25 -08008522sensor array-relative coordinates for all region data.<wbr/> Does
8523not need to be listed in static metadata.<wbr/> Support will be
8524removed in future versions of camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008525 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008526 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008527
8528
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008529 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8530 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008531
8532
8533 <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008534 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008535 android.<wbr/>quirks.<wbr/>trigger<wbr/>Af<wbr/>With<wbr/>Auto
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008536 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008537 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008538 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008539
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008540 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008541
8542
8543 </td> <!-- entry_type -->
8544
8545 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008546 <p>If set to 1,<wbr/> then the camera service always
8547switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF
8548trigger.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008549 </td>
8550
8551 <td class="entry_units">
8552 </td>
8553
8554 <td class="entry_range">
8555 </td>
8556
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008557 <td class="entry_tags">
8558 </td>
8559
8560 </tr>
8561 <tr class="entries_header">
8562 <th class="th_details" colspan="5">Details</th>
8563 </tr>
8564 <tr class="entry_cont">
8565 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008566 <p>HAL implementations should implement AF trigger
8567modes for AUTO,<wbr/> MACRO,<wbr/> CONTINUOUS_<wbr/>FOCUS,<wbr/> and
8568CONTINUOUS_<wbr/>PICTURE modes instead of using this flag.<wbr/> Does
8569not need to be listed in static metadata.<wbr/> Support will be
8570removed in future versions of camera service</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008571 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008572 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008573
8574
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008575 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8576 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008577
8578
8579 <tr class="entry" id="static_android.quirks.useZslFormat">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008580 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008581 android.<wbr/>quirks.<wbr/>use<wbr/>Zsl<wbr/>Format
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008582 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008583 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008584 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008585
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008586 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008587
8588
8589 </td> <!-- entry_type -->
8590
8591 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008592 <p>If set to 1,<wbr/> the camera service uses
8593CAMERA2_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>ZSL instead of
8594HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED for the zero
8595shutter lag stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008596 </td>
8597
8598 <td class="entry_units">
8599 </td>
8600
8601 <td class="entry_range">
8602 </td>
8603
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008604 <td class="entry_tags">
8605 </td>
8606
8607 </tr>
8608 <tr class="entries_header">
8609 <th class="th_details" colspan="5">Details</th>
8610 </tr>
8611 <tr class="entry_cont">
8612 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008613 <p>HAL implementations should use gralloc usage flags
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008614to determine that a stream will be used for
Igor Murashkin0b080452013-12-27 15:30:25 -08008615zero-shutter-lag,<wbr/> instead of relying on an explicit
8616format setting.<wbr/> Does not need to be listed in static
8617metadata.<wbr/> Support will be removed in future versions of
8618camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008619 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008620 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008621
8622
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008623 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8624 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008625
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008626
8627 <tr class="entry" id="static_android.quirks.usePartialResult">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008628 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008629 android.<wbr/>quirks.<wbr/>use<wbr/>Partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008630 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008631 <td class="entry_type">
8632 <span class="entry_type_name">byte</span>
8633
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008634 <span class="entry_type_visibility"> [hidden]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008635
8636
8637 </td> <!-- entry_type -->
8638
8639 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008640 <p>If set to 1,<wbr/> the HAL will always split result
8641metadata for a single capture into multiple buffers,<wbr/>
8642returned using multiple process_<wbr/>capture_<wbr/>result calls.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008643 </td>
8644
8645 <td class="entry_units">
8646 </td>
8647
8648 <td class="entry_range">
8649 </td>
8650
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008651 <td class="entry_tags">
8652 </td>
8653
8654 </tr>
8655 <tr class="entries_header">
8656 <th class="th_details" colspan="5">Details</th>
8657 </tr>
8658 <tr class="entry_cont">
8659 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008660 <p>Does not need to be listed in static
8661metadata.<wbr/> Support for partial results will be reworked in
8662future versions of camera service.<wbr/> This quirk will stop
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008663working at that point; DO NOT USE without careful
Igor Murashkin0b080452013-12-27 15:30:25 -08008664consideration of future support.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008665 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008666 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008667
8668
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008669 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8670 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008671
8672
8673
8674 <!-- end of kind -->
8675 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008676 <tr><td colspan="6" class="kind">dynamic</td></tr>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008677
8678 <thead class="entries_header">
8679 <tr>
8680 <th class="th_name">Property Name</th>
8681 <th class="th_type">Type</th>
8682 <th class="th_description">Description</th>
8683 <th class="th_units">Units</th>
8684 <th class="th_range">Range</th>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008685 <th class="th_tags">Tags</th>
8686 </tr>
8687 </thead>
8688
8689 <tbody>
8690
8691
8692
8693
8694
8695
8696
8697
8698
8699
8700 <tr class="entry" id="dynamic_android.quirks.partialResult">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008701 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008702 android.<wbr/>quirks.<wbr/>partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008703 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008704 <td class="entry_type">
8705 <span class="entry_type_name entry_type_name_enum">byte</span>
8706
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008707 <span class="entry_type_visibility"> [hidden as boolean]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008708
8709 <ul class="entry_type_enum">
8710 <li>
8711 <span class="entry_type_enum_name">FINAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008712 <span class="entry_type_enum_notes"><p>The last or only metadata result buffer
8713for this capture.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008714 </li>
8715 <li>
8716 <span class="entry_type_enum_name">PARTIAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008717 <span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this
8718capture.<wbr/> More result buffers for this capture will be sent
8719by the HAL,<wbr/> the last of which will be marked
8720FINAL.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008721 </li>
8722 </ul>
8723
8724 </td> <!-- entry_type -->
8725
8726 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008727 <p>Whether a result given to the framework is the
8728final one for the capture,<wbr/> or only a partial that contains a
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008729subset of the full set of dynamic metadata
Igor Murashkin0b080452013-12-27 15:30:25 -08008730values.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008731 </td>
8732
8733 <td class="entry_units">
8734 </td>
8735
8736 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008737 <p>Optional.<wbr/> Default value is FINAL.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008738 </td>
8739
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008740 <td class="entry_tags">
8741 </td>
8742
8743 </tr>
8744 <tr class="entries_header">
8745 <th class="th_details" colspan="5">Details</th>
8746 </tr>
8747 <tr class="entry_cont">
8748 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008749 <p>The entries in the result metadata buffers for a
8750single capture may not overlap,<wbr/> except for this entry.<wbr/> The
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008751FINAL buffers must retain FIFO ordering relative to the
Igor Murashkin0b080452013-12-27 15:30:25 -08008752requests that generate them,<wbr/> so the FINAL buffer for frame 3 must
8753always be sent to the framework after the FINAL buffer for frame 2,<wbr/> and
8754before the FINAL buffer for frame 4.<wbr/> PARTIAL buffers may be returned
8755in any order relative to other frames,<wbr/> but all PARTIAL buffers for a given
8756capture must arrive before the FINAL buffer for that capture.<wbr/> This entry may
8757only be used by the HAL if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008758 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008759 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008760
8761
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008762 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8763 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008764
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008765
8766
8767 <!-- end of kind -->
8768 </tbody>
8769
8770 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008771 <tr><td colspan="6" id="section_request" class="section">request</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008772
8773
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008774 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008775
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008776 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008777 <tr>
8778 <th class="th_name">Property Name</th>
8779 <th class="th_type">Type</th>
8780 <th class="th_description">Description</th>
8781 <th class="th_units">Units</th>
8782 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008783 <th class="th_tags">Tags</th>
8784 </tr>
8785 </thead>
8786
8787 <tbody>
8788
8789
8790
8791
8792
8793
8794
8795
8796
8797
8798 <tr class="entry" id="controls_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008799 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008800 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008801 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008802 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008803 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008804
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008805 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008806
8807
8808 </td> <!-- entry_type -->
8809
8810 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008811 <p>A frame counter set by the framework.<wbr/> Must
8812be maintained unchanged in output frame.<wbr/> This value monotonically
8813increases with every new result (that is,<wbr/> each new result has a unique
8814frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008815 </td>
8816
8817 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008818 incrementing integer
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008819 </td>
8820
8821 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008822 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008823 </td>
8824
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008825 <td class="entry_tags">
8826 </td>
8827
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008828 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008829
8830
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008831 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8832 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008833
8834
8835 <tr class="entry" id="controls_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008836 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008837 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008838 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008839 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008840 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008841
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008842 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008843
8844
8845 </td> <!-- entry_type -->
8846
8847 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008848 <p>An application-specified ID for the current
8849request.<wbr/> Must be maintained unchanged in output
8850frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008851 </td>
8852
8853 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008854 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008855 </td>
8856
8857 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008858 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008859 </td>
8860
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008861 <td class="entry_tags">
8862 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008863 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008864 </ul>
8865 </td>
8866
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008867 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008868
8869
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008870 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8871 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008872
8873
8874 <tr class="entry" id="controls_android.request.inputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008875 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008876 android.<wbr/>request.<wbr/>input<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008877 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008878 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07008879 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008880 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008881
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008882 <span class="entry_type_array">
8883 n
8884 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008885 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008886
8887
8888 </td> <!-- entry_type -->
8889
8890 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008891 <p>List which camera reprocess stream is used
8892for the source of reprocessing data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008893 </td>
8894
8895 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008896 List of camera reprocess stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008897 </td>
8898
8899 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008900 <p>Typically,<wbr/> only one entry allowed,<wbr/> must be a valid
8901reprocess stream ID.<wbr/></p>
8902<p>If android.<wbr/>jpeg.<wbr/>needs<wbr/>Thumbnail is set,<wbr/> then multiple
8903reprocess streams may be included in a single request; they
8904must be different scaled versions of the same image.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008905 </td>
8906
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008907 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008908 <ul class="entry_tags">
8909 <li><a href="#tag_HAL2">HAL2</a></li>
8910 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008911 </td>
8912
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008913 </tr>
8914 <tr class="entries_header">
8915 <th class="th_details" colspan="5">Details</th>
8916 </tr>
8917 <tr class="entry_cont">
8918 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008919 <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> ==
Igor Murashkin0b080452013-12-27 15:30:25 -08008920REPROCESS.<wbr/> Ignored otherwise</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008921 </td>
8922 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008923
8924
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008925 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8926 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008927
8928
8929 <tr class="entry" id="controls_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008930 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008931 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008932 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008933 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008934 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008935
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008936 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008937
8938 <ul class="entry_type_enum">
8939 <li>
8940 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008941 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
8942for application-bound buffer data.<wbr/> If no
8943application-bound streams exist,<wbr/> no frame should be
8944placed in the output frame queue.<wbr/> If such streams
8945exist,<wbr/> a frame should be placed on the output queue
8946with null metadata but with the necessary output buffer
8947information.<wbr/> Timestamp information should still be
8948included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008949 </li>
8950 <li>
8951 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008952 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
8953only be produced if they are separately
8954enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008955 </li>
8956 </ul>
8957
8958 </td> <!-- entry_type -->
8959
8960 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008961 <p>How much metadata to produce on
8962output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008963 </td>
8964
8965 <td class="entry_units">
8966 </td>
8967
8968 <td class="entry_range">
8969 </td>
8970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008971 <td class="entry_tags">
8972 </td>
8973
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008974 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008975
8976
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008977 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8978 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008979
8980
8981 <tr class="entry" id="controls_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008982 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008983 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008984 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008985 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07008986 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008987 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008988
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008989 <span class="entry_type_array">
8990 n
8991 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008992 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008993
8994
8995 </td> <!-- entry_type -->
8996
8997 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008998 <p>Lists which camera output streams image data
8999from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009000 </td>
9001
9002 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009003 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009004 </td>
9005
9006 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009007 <p>List must only include streams that have been
9008created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009009 </td>
9010
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009011 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009012 <ul class="entry_tags">
9013 <li><a href="#tag_HAL2">HAL2</a></li>
9014 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009015 </td>
9016
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009017 </tr>
9018 <tr class="entries_header">
9019 <th class="th_details" colspan="5">Details</th>
9020 </tr>
9021 <tr class="entry_cont">
9022 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009023 <p>If no output streams are listed,<wbr/> then the image
9024data should simply be discarded.<wbr/> The image data must
9025still be captured for metadata and statistics production,<wbr/>
9026and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009027 </td>
9028 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009029
9030
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009031 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9032 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009033
9034
9035 <tr class="entry" id="controls_android.request.type">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009036 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009037 android.<wbr/>request.<wbr/>type
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009038 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009039 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009040 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009041
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009042 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009043
9044 <ul class="entry_type_enum">
9045 <li>
9046 <span class="entry_type_enum_name">CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009047 <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
9048and process it according to the
9049settings</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009050 </li>
9051 <li>
9052 <span class="entry_type_enum_name">REPROCESS</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009053 <span class="entry_type_enum_notes"><p>Process previously captured data; the
9054android.<wbr/>request.<wbr/>input<wbr/>Stream parameter determines the
9055source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
9056needed for reprocessing with [RP]</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009057 </li>
9058 </ul>
9059
9060 </td> <!-- entry_type -->
9061
9062 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009063 <p>The type of the request; either CAPTURE or
9064REPROCESS.<wbr/> For HAL3,<wbr/> this tag is redundant.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009065 </td>
9066
9067 <td class="entry_units">
9068 </td>
9069
9070 <td class="entry_range">
9071 </td>
9072
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009073 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009074 <ul class="entry_tags">
9075 <li><a href="#tag_HAL2">HAL2</a></li>
9076 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009077 </td>
9078
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009079 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009080
9081
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009082 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9083 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009084
9085
9086
9087 <!-- end of kind -->
9088 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009089 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009090
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009091 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009092 <tr>
9093 <th class="th_name">Property Name</th>
9094 <th class="th_type">Type</th>
9095 <th class="th_description">Description</th>
9096 <th class="th_units">Units</th>
9097 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009098 <th class="th_tags">Tags</th>
9099 </tr>
9100 </thead>
9101
9102 <tbody>
9103
9104
9105
9106
9107
9108
9109
9110
9111
9112
9113 <tr class="entry" id="static_android.request.maxNumOutputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009114 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009115 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009116 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009117 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009118 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009119 <span class="entry_type_container">x</span>
9120
9121 <span class="entry_type_array">
9122 3
9123 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009124 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009125
9126
9127 </td> <!-- entry_type -->
9128
9129 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009130 <p>How many output streams can be allocated at
9131the same time for each type of stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009132 </td>
9133
9134 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009135 The number of raw sensor streams; the number of
9136 processed,<wbr/> uncompressed streams; and the number of
9137 JPEG-compressed streams
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009138 </td>
9139
9140 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009141 <p>&gt;=1 for Raw and JPEG-compressed stream.<wbr/> &gt;= 3
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009142for processed,<wbr/> uncompressed streams</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009143 </td>
9144
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009145 <td class="entry_tags">
9146 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009147 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009148 </ul>
9149 </td>
9150
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009151 </tr>
9152 <tr class="entries_header">
9153 <th class="th_details" colspan="5">Details</th>
9154 </tr>
9155 <tr class="entry_cont">
9156 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009157 <p>Video snapshot with preview callbacks requires 3
9158processed streams (preview,<wbr/> record,<wbr/> app callbacks) and
9159one JPEG stream (snapshot)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009160 </td>
9161 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009162
9163
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009164 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9165 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009166
9167
9168 <tr class="entry" id="static_android.request.maxNumReprocessStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009169 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009170 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Reprocess<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009171 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009172 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009173 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009174 <span class="entry_type_container">x</span>
9175
9176 <span class="entry_type_array">
9177 1
9178 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009179 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009180
9181
9182 </td> <!-- entry_type -->
9183
9184 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009185 <p>How many reprocessing streams of any type
9186can be allocated at the same time</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009187 </td>
9188
9189 <td class="entry_units">
9190 </td>
9191
9192 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009193 <p>&gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009194 </td>
9195
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009196 <td class="entry_tags">
9197 </td>
9198
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009199 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009200
9201
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009202 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9203 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009204
Igor Murashkina46e02f2014-01-09 17:43:38 -08009205
9206 <tr class="entry" id="static_android.request.pipelineMaxDepth">
9207 <td class="entry_name" rowspan="5">
9208 android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth
9209 </td>
9210 <td class="entry_type">
9211 <span class="entry_type_name">byte</span>
9212
9213 <span class="entry_type_visibility"> [public]</span>
9214
9215
9216 </td> <!-- entry_type -->
9217
9218 <td class="entry_description">
9219 <p>Specifies the number of maximum pipeline stages a frame
9220has to go through from when it's exposed to when it's available
9221to the framework.<wbr/></p>
9222 </td>
9223
9224 <td class="entry_units">
9225 </td>
9226
9227 <td class="entry_range">
9228 </td>
9229
9230 <td class="entry_tags">
9231 </td>
9232
9233 </tr>
9234 <tr class="entries_header">
9235 <th class="th_details" colspan="5">Details</th>
9236 </tr>
9237 <tr class="entry_cont">
9238 <td class="entry_details" colspan="5">
9239 <p>A typical minimum value for this is 2 (one stage to expose,<wbr/>
9240one stage to readout) from the sensor.<wbr/> The ISP then usually adds
9241its own stages to do custom HW processing.<wbr/> Further stages may be
9242added by SW processing.<wbr/></p>
9243<p>Depending on what settings are used (e.<wbr/>g.<wbr/> YUV,<wbr/> JPEG) and what
9244processing is enabled (e.<wbr/>g.<wbr/> face detection),<wbr/> the actual pipeline
9245depth (specified by <a href="#dynamic_android.request.pipelineDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Depth</a>) may be less than
9246the max pipeline depth.<wbr/></p>
9247<p>A pipeline depth of X stages is equivalent to a pipeline latency of
9248X frame intervals.<wbr/></p>
9249<p>This value will be 8 or less.<wbr/></p>
9250 </td>
9251 </tr>
9252
9253 <tr class="entries_header">
9254 <th class="th_details" colspan="5">HAL Implementation Details</th>
9255 </tr>
9256 <tr class="entry_cont">
9257 <td class="entry_details" colspan="5">
9258 <p>This value should be 4 or less.<wbr/></p>
9259 </td>
9260 </tr>
9261
9262 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9263 <!-- end of entry -->
9264
Igor Murashkin2e291102014-01-10 14:18:30 -08009265
9266 <tr class="entry" id="static_android.request.partialResultCount">
9267 <td class="entry_name" rowspan="3">
9268 android.<wbr/>request.<wbr/>partial<wbr/>Result<wbr/>Count
9269 </td>
9270 <td class="entry_type">
9271 <span class="entry_type_name">int32</span>
9272
9273 <span class="entry_type_visibility"> [public]</span>
9274
9275
9276 </td> <!-- entry_type -->
9277
9278 <td class="entry_description">
9279 <p>Optional.<wbr/> Defaults to 1.<wbr/> Defines how many sub-components
9280a result will be composed of.<wbr/></p>
9281 </td>
9282
9283 <td class="entry_units">
9284 </td>
9285
9286 <td class="entry_range">
9287 <p>&gt;= 1</p>
9288 </td>
9289
9290 <td class="entry_tags">
9291 </td>
9292
9293 </tr>
9294 <tr class="entries_header">
9295 <th class="th_details" colspan="5">Details</th>
9296 </tr>
9297 <tr class="entry_cont">
9298 <td class="entry_details" colspan="5">
9299 <p>In order to combat the pipeline latency,<wbr/> partial results
9300may be delivered to the application layer from the camera device as
9301soon as they are available.<wbr/></p>
9302<p>A value of 1 means that partial results are not supported.<wbr/></p>
9303<p>A typical use case for this might be: after requesting an AF lock the
9304new AF state might be available 50% of the way through the pipeline.<wbr/>
9305The camera device could then immediately dispatch this state via a
9306partial result to the framework/<wbr/>application layer,<wbr/> and the rest of
9307the metadata via later partial results.<wbr/></p>
9308 </td>
9309 </tr>
9310
9311
9312 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9313 <!-- end of entry -->
9314
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009315
9316
9317 <!-- end of kind -->
9318 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009319 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009320
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009321 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009322 <tr>
9323 <th class="th_name">Property Name</th>
9324 <th class="th_type">Type</th>
9325 <th class="th_description">Description</th>
9326 <th class="th_units">Units</th>
9327 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009328 <th class="th_tags">Tags</th>
9329 </tr>
9330 </thead>
9331
9332 <tbody>
9333
9334
9335
9336
9337
9338
9339
9340
9341
9342
9343 <tr class="entry" id="dynamic_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009344 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009345 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009346 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009347 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009348 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009349
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009350 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009351
9352
9353 </td> <!-- entry_type -->
9354
9355 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009356 <p>A frame counter set by the framework.<wbr/> This value monotonically
9357increases with every new result (that is,<wbr/> each new result has a unique
9358frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009359 </td>
9360
9361 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009362 count of frames
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009363 </td>
9364
9365 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009366 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009367 </td>
9368
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009369 <td class="entry_tags">
9370 </td>
9371
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009372 </tr>
9373 <tr class="entries_header">
9374 <th class="th_details" colspan="5">Details</th>
9375 </tr>
9376 <tr class="entry_cont">
9377 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009378 <p>Reset on release()</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009379 </td>
9380 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009381
9382
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009383 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9384 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009385
9386
9387 <tr class="entry" id="dynamic_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009388 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009389 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009390 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009391 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009392 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009393
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009394 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009395
9396
9397 </td> <!-- entry_type -->
9398
9399 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009400 <p>An application-specified ID for the current
9401request.<wbr/> Must be maintained unchanged in output
9402frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009403 </td>
9404
9405 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009406 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009407 </td>
9408
9409 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009410 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009411 </td>
9412
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009413 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009414 <ul class="entry_tags">
9415 <li><a href="#tag_V1">V1</a></li>
9416 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009417 </td>
9418
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009419 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009420
9421
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009422 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9423 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009424
9425
9426 <tr class="entry" id="dynamic_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009427 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009428 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009429 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009430 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009431 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009432
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009433 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009434
9435 <ul class="entry_type_enum">
9436 <li>
9437 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009438 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
9439for application-bound buffer data.<wbr/> If no
9440application-bound streams exist,<wbr/> no frame should be
9441placed in the output frame queue.<wbr/> If such streams
9442exist,<wbr/> a frame should be placed on the output queue
9443with null metadata but with the necessary output buffer
9444information.<wbr/> Timestamp information should still be
9445included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009446 </li>
9447 <li>
9448 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009449 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
9450only be produced if they are separately
9451enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009452 </li>
9453 </ul>
9454
9455 </td> <!-- entry_type -->
9456
9457 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009458 <p>How much metadata to produce on
9459output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009460 </td>
9461
9462 <td class="entry_units">
9463 </td>
9464
9465 <td class="entry_range">
9466 </td>
9467
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009468 <td class="entry_tags">
9469 </td>
9470
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009471 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009472
9473
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009474 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9475 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009476
9477
9478 <tr class="entry" id="dynamic_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009479 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009480 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009481 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009482 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009483 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009484 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009485
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009486 <span class="entry_type_array">
9487 n
9488 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009489 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009490
9491
9492 </td> <!-- entry_type -->
9493
9494 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009495 <p>Lists which camera output streams image data
9496from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009497 </td>
9498
9499 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009500 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009501 </td>
9502
9503 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009504 <p>List must only include streams that have been
9505created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009506 </td>
9507
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009508 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009509 <ul class="entry_tags">
9510 <li><a href="#tag_HAL2">HAL2</a></li>
9511 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009512 </td>
9513
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009514 </tr>
9515 <tr class="entries_header">
9516 <th class="th_details" colspan="5">Details</th>
9517 </tr>
9518 <tr class="entry_cont">
9519 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009520 <p>If no output streams are listed,<wbr/> then the image
9521data should simply be discarded.<wbr/> The image data must
9522still be captured for metadata and statistics production,<wbr/>
9523and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009524 </td>
9525 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009526
9527
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009528 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9529 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009530
Igor Murashkina46e02f2014-01-09 17:43:38 -08009531
9532 <tr class="entry" id="dynamic_android.request.pipelineDepth">
9533 <td class="entry_name" rowspan="5">
9534 android.<wbr/>request.<wbr/>pipeline<wbr/>Depth
9535 </td>
9536 <td class="entry_type">
9537 <span class="entry_type_name">byte</span>
9538
9539 <span class="entry_type_visibility"> [public]</span>
9540
9541
9542 </td> <!-- entry_type -->
9543
9544 <td class="entry_description">
9545 <p>Specifies the number of pipeline stages the frame went
9546through from when it was exposed to when the final completed result
9547was available to the framework.<wbr/></p>
9548 </td>
9549
9550 <td class="entry_units">
9551 </td>
9552
9553 <td class="entry_range">
9554 <p>&lt;= <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a></p>
9555 </td>
9556
9557 <td class="entry_tags">
9558 </td>
9559
9560 </tr>
9561 <tr class="entries_header">
9562 <th class="th_details" colspan="5">Details</th>
9563 </tr>
9564 <tr class="entry_cont">
9565 <td class="entry_details" colspan="5">
9566 <p>Depending on what settings are used in the request,<wbr/> and
9567what streams are configured,<wbr/> the data may undergo less processing,<wbr/>
9568and some pipeline stages skipped.<wbr/></p>
9569<p>See <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> for more details.<wbr/></p>
9570 </td>
9571 </tr>
9572
9573 <tr class="entries_header">
9574 <th class="th_details" colspan="5">HAL Implementation Details</th>
9575 </tr>
9576 <tr class="entry_cont">
9577 <td class="entry_details" colspan="5">
9578 <p>This value must always represent the accurate count of how many
9579pipeline stages were actually used.<wbr/></p>
9580 </td>
9581 </tr>
9582
9583 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9584 <!-- end of entry -->
9585
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009586
9587
9588 <!-- end of kind -->
9589 </tbody>
9590
9591 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009592 <tr><td colspan="6" id="section_scaler" class="section">scaler</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009593
9594
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009595 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009596
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009597 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009598 <tr>
9599 <th class="th_name">Property Name</th>
9600 <th class="th_type">Type</th>
9601 <th class="th_description">Description</th>
9602 <th class="th_units">Units</th>
9603 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009604 <th class="th_tags">Tags</th>
9605 </tr>
9606 </thead>
9607
9608 <tbody>
9609
9610
9611
9612
9613
9614
9615
9616
9617
9618
9619 <tr class="entry" id="controls_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009620 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009621 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009622 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009623 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009624 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009625 <span class="entry_type_container">x</span>
9626
9627 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07009628 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009629 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009630 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009631
9632
9633 </td> <!-- entry_type -->
9634
9635 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009636 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
9637<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
9638(width,<wbr/> height).<wbr/> The region of the sensor that is used for
9639output.<wbr/> Each stream must use this rectangle to produce its
9640output,<wbr/> cropping to a smaller region if necessary to
9641maintain the stream's aspect ratio.<wbr/></p>
9642<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009643 </td>
9644
9645 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009646 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
9647 in pixels; (0,<wbr/>0) is top-left corner of
9648 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009649 </td>
9650
9651 <td class="entry_range">
9652 </td>
9653
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009654 <td class="entry_tags">
9655 <ul class="entry_tags">
9656 <li><a href="#tag_BC">BC</a></li>
9657 </ul>
9658 </td>
9659
9660 </tr>
9661 <tr class="entries_header">
9662 <th class="th_details" colspan="5">Details</th>
9663 </tr>
9664 <tr class="entry_cont">
9665 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009666 <p>Any additional per-stream cropping must be done to
9667maximize the final pixel area of the stream.<wbr/></p>
9668<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
9669ratio,<wbr/> then 4:3 streams should use the exact crop
9670region.<wbr/> 16:9 streams should further crop vertically
9671(letterbox).<wbr/></p>
9672<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
9673outputs should crop horizontally (pillarbox),<wbr/> and 16:9
9674streams should match exactly.<wbr/> These additional crops must
9675be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009676<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -08009677times,<wbr/> no matter what the relative aspect ratios of the
9678crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009679corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -08009680larger than active pixel array.<wbr/> Width and height may be
9681rounded to nearest larger supportable width,<wbr/> especially
9682for raw output,<wbr/> where only a few fixed scales may be
9683possible.<wbr/> The width and height of the crop region cannot
9684be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
9685android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
9686activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
9687respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009688 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009689 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009690
9691
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009692 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9693 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009694
9695
9696
9697 <!-- end of kind -->
9698 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009699 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009700
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009701 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009702 <tr>
9703 <th class="th_name">Property Name</th>
9704 <th class="th_type">Type</th>
9705 <th class="th_description">Description</th>
9706 <th class="th_units">Units</th>
9707 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009708 <th class="th_tags">Tags</th>
9709 </tr>
9710 </thead>
9711
9712 <tbody>
9713
9714
9715
9716
9717
9718
9719
9720
9721
9722
9723 <tr class="entry" id="static_android.scaler.availableFormats">
Zhijun Heb8317e22014-01-16 09:47:07 -08009724 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009725 android.<wbr/>scaler.<wbr/>available<wbr/>Formats
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009726 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009727 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009728 <span class="entry_type_name entry_type_name_enum">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009729 <span class="entry_type_container">x</span>
9730
9731 <span class="entry_type_array">
9732 n
9733 </span>
Eino-Ville Talvalad4e240a2013-08-08 12:56:37 -07009734 <span class="entry_type_visibility"> [public as imageFormat]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009735
9736 <ul class="entry_type_enum">
9737 <li>
9738 <span class="entry_type_enum_name">RAW_SENSOR</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009739 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009740 <span class="entry_type_enum_value">0x20</span>
9741 </li>
9742 <li>
9743 <span class="entry_type_enum_name">YV12</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009744 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009745 <span class="entry_type_enum_value">0x32315659</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009746 <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009747 </li>
9748 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009749 <span class="entry_type_enum_name">YCrCb_420_SP</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009750 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009751 <span class="entry_type_enum_value">0x11</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009752 <span class="entry_type_enum_notes"><p>NV21</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009753 </li>
9754 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009755 <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span>
9756 <span class="entry_type_enum_value">0x22</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009757 <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009758 </li>
9759 <li>
9760 <span class="entry_type_enum_name">YCbCr_420_888</span>
9761 <span class="entry_type_enum_value">0x23</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009762 <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009763 </li>
9764 <li>
9765 <span class="entry_type_enum_name">BLOB</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009766 <span class="entry_type_enum_value">0x21</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009767 <span class="entry_type_enum_notes"><p>JPEG format</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009768 </li>
9769 </ul>
9770
9771 </td> <!-- entry_type -->
9772
9773 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009774 <p>The list of image formats that are supported by this
9775camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009776 </td>
9777
9778 <td class="entry_units">
9779 </td>
9780
9781 <td class="entry_range">
9782 </td>
9783
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009784 <td class="entry_tags">
9785 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009786 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009787 </ul>
9788 </td>
9789
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009790 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009791 <tr class="entries_header">
9792 <th class="th_details" colspan="5">Details</th>
9793 </tr>
9794 <tr class="entry_cont">
9795 <td class="entry_details" colspan="5">
9796 <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p>
9797<p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p>
9798 </td>
9799 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009800
Zhijun Heb8317e22014-01-16 09:47:07 -08009801 <tr class="entries_header">
9802 <th class="th_details" colspan="5">HAL Implementation Details</th>
9803 </tr>
9804 <tr class="entry_cont">
9805 <td class="entry_details" colspan="5">
9806 <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
9807system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
9808<p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform
9809gralloc module will select a format based on the usage flags provided
9810by the camera HAL device and the other endpoint of the stream.<wbr/> It is
9811usually used by preview and recording streams,<wbr/> where the application doesn't
9812need access the image data.<wbr/></p>
9813<p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream
9814needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p>
9815<p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p>
9816 </td>
9817 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009818
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009819 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9820 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009821
9822
9823 <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009824 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009825 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009826 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009827 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009828 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009829 <span class="entry_type_container">x</span>
9830
9831 <span class="entry_type_array">
9832 n
9833 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009834 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009835
9836
9837 </td> <!-- entry_type -->
9838
9839 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009840 <p>The minimum frame duration that is supported
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009841for 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 -08009842 </td>
9843
9844 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009845 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009846 </td>
9847
9848 <td class="entry_range">
9849 </td>
9850
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009851 <td class="entry_tags">
9852 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009853 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009854 </ul>
9855 </td>
9856
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009857 </tr>
9858 <tr class="entries_header">
9859 <th class="th_details" colspan="5">Details</th>
9860 </tr>
9861 <tr class="entry_cont">
9862 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009863 <p>This corresponds to the minimum steady-state frame duration when only
9864that JPEG stream is active and captured in a burst,<wbr/> with all
9865processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST.<wbr/></p>
9866<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009867frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -08009868durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009869 </td>
9870 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009871
9872
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009873 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9874 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009875
9876
9877 <tr class="entry" id="static_android.scaler.availableJpegSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -08009878 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009879 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009880 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009881 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009882 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009883 <span class="entry_type_container">x</span>
9884
9885 <span class="entry_type_array">
9886 n x 2
9887 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009888 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009889
9890
9891 </td> <!-- entry_type -->
9892
9893 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009894 <p>The JPEG resolutions that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009895 </td>
9896
9897 <td class="entry_units">
9898 </td>
9899
9900 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009901 </td>
9902
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009903 <td class="entry_tags">
9904 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009905 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009906 </ul>
9907 </td>
9908
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009909 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009910 <tr class="entries_header">
9911 <th class="th_details" colspan="5">Details</th>
9912 </tr>
9913 <tr class="entry_cont">
9914 <td class="entry_details" colspan="5">
9915 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support
9916sensor 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>
9917 </td>
9918 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009919
Zhijun Heb8317e22014-01-16 09:47:07 -08009920 <tr class="entries_header">
9921 <th class="th_details" colspan="5">HAL Implementation Details</th>
9922 </tr>
9923 <tr class="entry_cont">
9924 <td class="entry_details" colspan="5">
9925 <p>The HAL must include sensor maximum resolution
9926(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/>
9927and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p>
9928 </td>
9929 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009930
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009931 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9932 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009933
9934
9935 <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009936 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009937 android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009938 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009939 <td class="entry_type">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07009940 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009941
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009942 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009943
9944
9945 </td> <!-- entry_type -->
9946
9947 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009948 <p>The maximum ratio between active area width
9949and crop region width,<wbr/> or between active area height and
9950crop region height,<wbr/> if the crop region height is larger
9951than width</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009952 </td>
9953
9954 <td class="entry_units">
9955 </td>
9956
9957 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009958 <p>&gt;=1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009959 </td>
9960
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009961 <td class="entry_tags">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07009962 <ul class="entry_tags">
9963 <li><a href="#tag_BC">BC</a></li>
9964 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009965 </td>
9966
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009967 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009968
9969
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009970 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9971 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009972
9973
9974 <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009975 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009976 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009977 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009978 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009979 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009980 <span class="entry_type_container">x</span>
9981
9982 <span class="entry_type_array">
9983 n
9984 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009985 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009986
9987
9988 </td> <!-- entry_type -->
9989
9990 <td class="entry_description">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009991 <p>For each available processed output size (defined in
9992<a href="#static_android.scaler.availableProcessedSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes</a>),<wbr/> this property lists the
9993minimum supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009994 </td>
9995
9996 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009997 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009998 </td>
9999
10000 <td class="entry_range">
10001 </td>
10002
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010003 <td class="entry_tags">
10004 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010005 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010006 </ul>
10007 </td>
10008
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010009 </tr>
10010 <tr class="entries_header">
10011 <th class="th_details" colspan="5">Details</th>
10012 </tr>
10013 <tr class="entry_cont">
10014 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010015 <p>This should correspond to the frame duration when only that processed
10016stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
10017set to FAST.<wbr/></p>
10018<p>When multiple streams are configured,<wbr/> the minimum frame duration will
10019be &gt;= max(individual stream min durations).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010020 </td>
10021 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010022
10023
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010024 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10025 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010026
10027
10028 <tr class="entry" id="static_android.scaler.availableProcessedSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -080010029 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010030 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010031 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010032 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010033 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010034 <span class="entry_type_container">x</span>
10035
10036 <span class="entry_type_array">
10037 n x 2
10038 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010039 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010040
10041
10042 </td> <!-- entry_type -->
10043
10044 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010045 <p>The resolutions available for use with
10046processed output streams,<wbr/> such as YV12,<wbr/> NV12,<wbr/> and
10047platform opaque YUV/<wbr/>RGB streams to the GPU or video
Zhijun Heb8317e22014-01-16 09:47:07 -080010048encoders.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010049 </td>
10050
10051 <td class="entry_units">
10052 </td>
10053
10054 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010055 </td>
10056
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010057 <td class="entry_tags">
10058 <ul class="entry_tags">
10059 <li><a href="#tag_BC">BC</a></li>
10060 </ul>
10061 </td>
10062
10063 </tr>
10064 <tr class="entries_header">
10065 <th class="th_details" colspan="5">Details</th>
10066 </tr>
10067 <tr class="entry_cont">
10068 <td class="entry_details" colspan="5">
Zhijun Heb8317e22014-01-16 09:47:07 -080010069 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p>
10070<p>For a given use case,<wbr/> the actual maximum supported resolution
10071may be lower than what is listed here,<wbr/> depending on the destination
10072Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
10073the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
10074smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
10075can provide.<wbr/></p>
10076<p>Please reference the documentation for the image data destination to
10077check if it limits the maximum size for image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010078 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010079 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010080
Zhijun Heb8317e22014-01-16 09:47:07 -080010081 <tr class="entries_header">
10082 <th class="th_details" colspan="5">HAL Implementation Details</th>
10083 </tr>
10084 <tr class="entry_cont">
10085 <td class="entry_details" colspan="5">
10086 <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/>
10087the HAL must include all JPEG sizes listed in android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
10088and each below resolution if it is smaller than or equal to the sensor
10089maximum resolution (if they are not listed in JPEG sizes already):</p>
10090<ul>
10091<li>240p (320 x 240)</li>
10092<li>480p (640 x 480)</li>
10093<li>720p (1280 x 720)</li>
10094<li>1080p (1920 x 1080)</li>
10095</ul>
10096<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/>
10097the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p>
10098 </td>
10099 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010100
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010101 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10102 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010103
10104
10105 <tr class="entry" id="static_android.scaler.availableRawMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010106 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010107 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010108 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010109 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010110 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010111 <span class="entry_type_container">x</span>
10112
10113 <span class="entry_type_array">
10114 n
10115 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010116 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010117
10118
10119 </td> <!-- entry_type -->
10120
10121 <td class="entry_description">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010122 <p>For each available raw output size (defined in
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010123<a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a>),<wbr/> this property lists the minimum
10124supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010125 </td>
10126
10127 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010128 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010129 </td>
10130
10131 <td class="entry_range">
10132 </td>
10133
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010134 <td class="entry_tags">
10135 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010136 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010137 </ul>
10138 </td>
10139
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010140 </tr>
10141 <tr class="entries_header">
10142 <th class="th_details" colspan="5">Details</th>
10143 </tr>
10144 <tr class="entry_cont">
10145 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010146 <p>Should correspond to the frame duration when only the raw stream is
10147active.<wbr/></p>
10148<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010149frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -080010150durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010151 </td>
10152 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010153
10154
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010155 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10156 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010157
10158
10159 <tr class="entry" id="static_android.scaler.availableRawSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010160 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010161 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010162 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010163 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010164 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010165 <span class="entry_type_container">x</span>
10166
10167 <span class="entry_type_array">
10168 n x 2
10169 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010170 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010171
10172
10173 </td> <!-- entry_type -->
10174
10175 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010176 <p>The resolutions available for use with raw
10177sensor output streams,<wbr/> listed as width,<wbr/>
10178height</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010179 </td>
10180
10181 <td class="entry_units">
10182 </td>
10183
10184 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010185 <p>Must include: - sensor maximum resolution</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010186 </td>
10187
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010188 <td class="entry_tags">
10189 </td>
10190
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010191 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010192
10193
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010194 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10195 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010196
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010197
10198
10199 <!-- end of kind -->
10200 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010201 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010202
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010203 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010204 <tr>
10205 <th class="th_name">Property Name</th>
10206 <th class="th_type">Type</th>
10207 <th class="th_description">Description</th>
10208 <th class="th_units">Units</th>
10209 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010210 <th class="th_tags">Tags</th>
10211 </tr>
10212 </thead>
10213
10214 <tbody>
10215
10216
10217
10218
10219
10220
10221
10222
10223
10224
10225 <tr class="entry" id="dynamic_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010226 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010227 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010228 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010229 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010230 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010231 <span class="entry_type_container">x</span>
10232
10233 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -070010234 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010235 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010236 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010237
10238
10239 </td> <!-- entry_type -->
10240
10241 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010242 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
10243<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
10244(width,<wbr/> height).<wbr/> The region of the sensor that is used for
10245output.<wbr/> Each stream must use this rectangle to produce its
10246output,<wbr/> cropping to a smaller region if necessary to
10247maintain the stream's aspect ratio.<wbr/></p>
10248<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010249 </td>
10250
10251 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010252 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
10253 in pixels; (0,<wbr/>0) is top-left corner of
10254 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010255 </td>
10256
10257 <td class="entry_range">
10258 </td>
10259
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010260 <td class="entry_tags">
10261 <ul class="entry_tags">
10262 <li><a href="#tag_BC">BC</a></li>
10263 </ul>
10264 </td>
10265
10266 </tr>
10267 <tr class="entries_header">
10268 <th class="th_details" colspan="5">Details</th>
10269 </tr>
10270 <tr class="entry_cont">
10271 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010272 <p>Any additional per-stream cropping must be done to
10273maximize the final pixel area of the stream.<wbr/></p>
10274<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
10275ratio,<wbr/> then 4:3 streams should use the exact crop
10276region.<wbr/> 16:9 streams should further crop vertically
10277(letterbox).<wbr/></p>
10278<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
10279outputs should crop horizontally (pillarbox),<wbr/> and 16:9
10280streams should match exactly.<wbr/> These additional crops must
10281be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010282<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -080010283times,<wbr/> no matter what the relative aspect ratios of the
10284crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010285corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -080010286larger than active pixel array.<wbr/> Width and height may be
10287rounded to nearest larger supportable width,<wbr/> especially
10288for raw output,<wbr/> where only a few fixed scales may be
10289possible.<wbr/> The width and height of the crop region cannot
10290be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
10291android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
10292activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
10293respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010294 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010295 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010296
10297
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010298 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10299 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010300
10301
10302
10303 <!-- end of kind -->
10304 </tbody>
10305
10306 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010307 <tr><td colspan="6" id="section_sensor" class="section">sensor</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010308
10309
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010310 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010311
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010312 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010313 <tr>
10314 <th class="th_name">Property Name</th>
10315 <th class="th_type">Type</th>
10316 <th class="th_description">Description</th>
10317 <th class="th_units">Units</th>
10318 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010319 <th class="th_tags">Tags</th>
10320 </tr>
10321 </thead>
10322
10323 <tbody>
10324
10325
10326
10327
10328
10329
10330
10331
10332
10333
10334 <tr class="entry" id="controls_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010335 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010336 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010337 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010338 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010339 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010340
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010341 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010342
10343
10344 </td> <!-- entry_type -->
10345
10346 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010347 <p>Duration each pixel is exposed to
10348light.<wbr/></p>
10349<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
10350duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010351 </td>
10352
10353 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010354 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010355 </td>
10356
10357 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010358 <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 -080010359 </td>
10360
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010361 <td class="entry_tags">
10362 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010363 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010364 </ul>
10365 </td>
10366
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010367 </tr>
10368 <tr class="entries_header">
10369 <th class="th_details" colspan="5">Details</th>
10370 </tr>
10371 <tr class="entry_cont">
10372 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010373 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010374 </td>
10375 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010376
10377
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010378 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10379 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010380
10381
10382 <tr class="entry" id="controls_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010383 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010384 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010385 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010386 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010387 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010388
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010389 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010390
10391
10392 </td> <!-- entry_type -->
10393
10394 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010395 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010396start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010397 </td>
10398
10399 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010400 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010401 </td>
10402
10403 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010404 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
10405android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
10406is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010407 </td>
10408
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010409 <td class="entry_tags">
10410 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010411 <li><a href="#tag_V1">V1</a></li>
10412 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010413 </ul>
10414 </td>
10415
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010416 </tr>
10417 <tr class="entries_header">
10418 <th class="th_details" colspan="5">Details</th>
10419 </tr>
10420 <tr class="entry_cont">
10421 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010422 <p>The maximum frame rate that can be supported by a camera subsystem is
10423a function of many factors:</p>
10424<ul>
10425<li>Requested resolutions of output image streams</li>
10426<li>Availability of binning /<wbr/> skipping modes on the imager</li>
10427<li>The bandwidth of the imager interface</li>
10428<li>The bandwidth of the various ISP processing blocks</li>
10429</ul>
10430<p>Since these factors can vary greatly between different ISPs and
10431sensors,<wbr/> the camera abstraction tries to represent the bandwidth
10432restrictions with as simple a model as possible.<wbr/></p>
10433<p>The model presented has the following characteristics:</p>
10434<ul>
10435<li>The image sensor is always configured to output the smallest
10436resolution possible given the application's requested output stream
10437sizes.<wbr/> The smallest resolution is defined as being at least as large
10438as the largest requested output stream size; the camera pipeline must
10439never digitally upsample sensor data when the crop region covers the
10440whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
10441resolutions are configured,<wbr/> the sensor can provide a higher frame
10442rate.<wbr/></li>
10443<li>Since any request may use any or all the currently configured
10444output streams,<wbr/> the sensor and ISP must be configured to support
10445scaling a single capture to all the streams at the same time.<wbr/> This
10446means the camera pipeline must be ready to produce the largest
10447requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
10448frame rate of a given configured stream set is governed only by the
10449largest requested stream resolution.<wbr/></li>
10450<li>Using more than one output stream in a request does not affect the
10451frame duration.<wbr/></li>
10452<li>JPEG streams act like processed YUV streams in requests for which
10453they are not included; in requests in which they are directly
10454referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
10455JPEG stream requires the underlying YUV data to always be ready for
10456use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
10457frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
10458<li>The JPEG processor can run concurrently to the rest of the camera
10459pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
10460</ul>
10461<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
10462is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
10463These are used to determine the maximum frame rate /<wbr/> minimum frame
10464duration that is possible for a given stream configuration.<wbr/></p>
10465<p>Specifically,<wbr/> the application can use the following rules to
10466determine the minimum frame duration it can request from the HAL
10467device:</p>
10468<ol>
10469<li>Given the application's currently configured set of output
10470streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
10471<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
10472<code>SP</code>.<wbr/></li>
10473<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
10474count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
10475<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
10476<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
10477no exact match for <code>RP == RJ</code> (in particular there isn't an available
10478processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
10479to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
10480there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
10481the processed resolution closest to <code>RJ</code>.<wbr/></li>
10482<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
10483no exact match for <code>RR == RP</code> (in particular there isn't an available
10484raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
10485or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
10486there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
10487the raw resolution closest to <code>RP</code>.<wbr/></li>
10488<li>Look up the matching minimum frame durations in the property lists
10489<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
10490<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
10491<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
10492minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
10493<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
10494supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
10495<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
10496supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
10497<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
10498the application,<wbr/> then the HAL will have to delay JPEG-using requests
10499whenever the JPEG encoder is still busy processing an older capture.<wbr/>
10500This will happen whenever a JPEG-using request starts capture less
10501than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
10502supported frame duration will vary between the values calculated in
10503#6 and #7.<wbr/></li>
10504</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010505 </td>
10506 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010507
10508
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010509 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10510 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010511
10512
10513 <tr class="entry" id="controls_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010514 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010515 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010516 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010517 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010518 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010519
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010520 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010521
10522
10523 </td> <!-- entry_type -->
10524
10525 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010526 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010527implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080010528below 'maximum analog sensitivity'.<wbr/></p>
10529<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
10530gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010531 </td>
10532
10533 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010534 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010535 </td>
10536
10537 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010538 <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 -080010539 </td>
10540
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010541 <td class="entry_tags">
10542 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010543 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010544 </ul>
10545 </td>
10546
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010547 </tr>
10548 <tr class="entries_header">
10549 <th class="th_details" colspan="5">Details</th>
10550 </tr>
10551 <tr class="entry_cont">
10552 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010553 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010554 </td>
10555 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010556
10557
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010558 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10559 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010560
Igor Murashkina46e02f2014-01-09 17:43:38 -080010561
10562 <tr class="entry" id="controls_android.sensor.testPatternData">
10563 <td class="entry_name" rowspan="5">
10564 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
10565 </td>
10566 <td class="entry_type">
10567 <span class="entry_type_name">int32</span>
10568 <span class="entry_type_container">x</span>
10569
10570 <span class="entry_type_array">
10571 4
10572 </span>
10573 <span class="entry_type_visibility"> [public]</span>
10574
10575
10576 </td> <!-- entry_type -->
10577
10578 <td class="entry_description">
10579 <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
10580when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
10581 </td>
10582
10583 <td class="entry_units">
10584 </td>
10585
10586 <td class="entry_range">
10587 <p>Optional.<wbr/>
10588Must be supported if <a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a> contains
10589SOLID_<wbr/>COLOR.<wbr/></p>
10590 </td>
10591
10592 <td class="entry_tags">
10593 </td>
10594
10595 </tr>
10596 <tr class="entries_header">
10597 <th class="th_details" colspan="5">Details</th>
10598 </tr>
10599 <tr class="entry_cont">
10600 <td class="entry_details" colspan="5">
10601 <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
10602The camera device then uses the most significant X bits
10603that correspond to how many bits are in its Bayer raw sensor
10604output.<wbr/></p>
10605<p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
1060610 most significant bits from each color channel.<wbr/></p>
10607 </td>
10608 </tr>
10609
10610 <tr class="entries_header">
10611 <th class="th_details" colspan="5">HAL Implementation Details</th>
10612 </tr>
10613 <tr class="entry_cont">
10614 <td class="entry_details" colspan="5">
10615
10616 </td>
10617 </tr>
10618
10619 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10620 <!-- end of entry -->
10621
10622
10623 <tr class="entry" id="controls_android.sensor.testPatternMode">
10624 <td class="entry_name" rowspan="5">
10625 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
10626 </td>
10627 <td class="entry_type">
10628 <span class="entry_type_name entry_type_name_enum">int32</span>
10629
10630 <span class="entry_type_visibility"> [public]</span>
10631
10632 <ul class="entry_type_enum">
10633 <li>
10634 <span class="entry_type_enum_name">OFF</span>
10635 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
10636device returns captures from the image sensor.<wbr/></p></span>
10637 </li>
10638 <li>
10639 <span class="entry_type_enum_name">SOLID_COLOR</span>
10640 <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
10641respective color channel provided in
10642<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
10643<p>For example:</p>
10644<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10645</code></pre>
10646<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
10647<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10648</code></pre>
10649<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
10650are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
10651 </li>
10652 <li>
10653 <span class="entry_type_enum_name">COLOR_BARS</span>
10654 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
10655<p>The vertical bars (left-to-right) are as follows:</p>
10656<ul>
10657<li>100% white</li>
10658<li>yellow</li>
10659<li>cyan</li>
10660<li>green</li>
10661<li>magenta</li>
10662<li>red</li>
10663<li>blue</li>
10664<li>black</li>
10665</ul>
10666<p>In general the image would look like the following:</p>
10667<pre><code>W Y C G M R B K
10668W Y C G M R B K
10669W Y C G M R B K
10670W Y C G M R B K
10671W Y C G M R B K
10672.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10673.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10674.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10675
10676(B = Blue,<wbr/> K = Black)
10677</code></pre>
10678<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
10679When this is not possible,<wbr/> the bar size should be rounded
10680down to the nearest integer and the pattern can repeat
10681on the right side.<wbr/></p>
10682<p>Each bar's height must always take up the full sensor
10683pixel array height.<wbr/></p>
10684<p>Each pixel in this test pattern must be set to either
106850% intensity or 100% intensity.<wbr/></p></span>
10686 </li>
10687 <li>
10688 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
10689 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
10690each bar should start at its specified color at the top,<wbr/>
10691and fade to gray at the bottom.<wbr/></p>
10692<p>Furthermore each bar is further subdivided into a left and
10693right half.<wbr/> The left half should have a smooth gradient,<wbr/>
10694and the right half should have a quantized gradient.<wbr/></p>
10695<p>In particular,<wbr/> the right half's should consist of blocks of the
10696same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
10697<p>The least significant bits in the quantized gradient should
10698be copied from the most significant bits of the smooth gradient.<wbr/></p>
10699<p>The height of each bar should always be a multiple of 128.<wbr/>
10700When this is not the case,<wbr/> the pattern should repeat at the bottom
10701of the image.<wbr/></p></span>
10702 </li>
10703 <li>
10704 <span class="entry_type_enum_name">PN9</span>
10705 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
10706generated from a PN9 512-bit sequence (typically implemented
10707in hardware with a linear feedback shift register).<wbr/></p>
10708<p>The generator should be reset at the beginning of each frame,<wbr/>
10709and thus each subsequent raw frame with this test pattern should
10710be exactly the same as the last.<wbr/></p></span>
10711 </li>
10712 <li>
10713 <span class="entry_type_enum_name">CUSTOM1</span>
10714 <span class="entry_type_enum_value">256</span>
10715 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
10716available only on this camera device are at least this numeric
10717value.<wbr/></p>
10718<p>All of the custom test patterns will be static
10719(that is the raw image must not vary from frame to frame).<wbr/></p></span>
10720 </li>
10721 </ul>
10722
10723 </td> <!-- entry_type -->
10724
10725 <td class="entry_description">
10726 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
10727doing a real exposure from the camera.<wbr/></p>
10728 </td>
10729
10730 <td class="entry_units">
10731 </td>
10732
10733 <td class="entry_range">
10734 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
10735<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
10736 </td>
10737
10738 <td class="entry_tags">
10739 </td>
10740
10741 </tr>
10742 <tr class="entries_header">
10743 <th class="th_details" colspan="5">Details</th>
10744 </tr>
10745 <tr class="entry_cont">
10746 <td class="entry_details" colspan="5">
10747 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
10748by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
10749work as normal.<wbr/></p>
10750<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
10751occur (and that the test pattern remain unmodified,<wbr/> since the flash
10752would not actually affect it).<wbr/></p>
10753 </td>
10754 </tr>
10755
10756 <tr class="entries_header">
10757 <th class="th_details" colspan="5">HAL Implementation Details</th>
10758 </tr>
10759 <tr class="entry_cont">
10760 <td class="entry_details" colspan="5">
10761 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
10762<p>The HAL may choose to substitute test patterns from the sensor
10763with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
10764indistinguishable to the ISP whether the data came from the
10765sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
10766 </td>
10767 </tr>
10768
10769 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10770 <!-- end of entry -->
10771
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010772
10773
10774 <!-- end of kind -->
10775 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010776 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010777
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010778 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010779 <tr>
10780 <th class="th_name">Property Name</th>
10781 <th class="th_type">Type</th>
10782 <th class="th_description">Description</th>
10783 <th class="th_units">Units</th>
10784 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010785 <th class="th_tags">Tags</th>
10786 </tr>
10787 </thead>
10788
10789 <tbody>
10790
10791
10792
10793
10794
10795
10796
10797
10798
10799
10800
10801
10802 <tr class="entry" id="static_android.sensor.info.activeArraySize">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010803 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010804 android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010805 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010806 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010807 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010808 <span class="entry_type_container">x</span>
10809
10810 <span class="entry_type_array">
10811 4
10812 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010813 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010814 <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010815
10816
10817 </td> <!-- entry_type -->
10818
10819 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010820 <p>Area of raw data which corresponds to only
Zhijun Hebdc94c42014-01-21 18:28:30 -080010821active pixels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010822 </td>
10823
10824 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010825 </td>
10826
10827 <td class="entry_range">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010828 <p>This array contains <code>(xmin,<wbr/> ymin,<wbr/> width,<wbr/> height)</code>.<wbr/> The <code>(xmin,<wbr/> ymin)</code> must be
10829&gt;= <code>(0,<wbr/>0)</code>.<wbr/> The <code>(width,<wbr/> height)</code> must be &lt;=
10830<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 -080010831 </td>
10832
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010833 <td class="entry_tags">
10834 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010835 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010836 </ul>
10837 </td>
10838
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010839 </tr>
Zhijun Hebdc94c42014-01-21 18:28:30 -080010840 <tr class="entries_header">
10841 <th class="th_details" colspan="5">Details</th>
10842 </tr>
10843 <tr class="entry_cont">
10844 <td class="entry_details" colspan="5">
10845 <p>It is smaller or equal to
10846sensor full pixel array,<wbr/> which could include the black calibration pixels.<wbr/></p>
10847 </td>
10848 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010849
10850
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010851 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10852 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010853
10854
Zhijun He69fc0ea2013-07-17 09:42:58 -070010855 <tr class="entry" id="static_android.sensor.info.sensitivityRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010856 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010857 android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010858 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010859 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010860 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010861 <span class="entry_type_container">x</span>
10862
10863 <span class="entry_type_array">
Zhijun He69fc0ea2013-07-17 09:42:58 -070010864 2
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010865 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010866 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010867 <div class="entry_type_notes">Range of supported sensitivities</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010868
10869
10870 </td> <!-- entry_type -->
10871
10872 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010873 <p>Range of valid sensitivities</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010874 </td>
10875
10876 <td class="entry_units">
10877 </td>
10878
10879 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010880 <p>Min &lt;= 100,<wbr/> Max &gt;= 1600</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010881 </td>
10882
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010883 <td class="entry_tags">
10884 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010885 <li><a href="#tag_BC">BC</a></li>
10886 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010887 </ul>
10888 </td>
10889
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010890 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010891
10892
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010893 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10894 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010895
10896
10897 <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010898 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010899 android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010900 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010901 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010902 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010903
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010904 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010905
10906 <ul class="entry_type_enum">
10907 <li>
10908 <span class="entry_type_enum_name">RGGB</span>
10909 </li>
10910 <li>
10911 <span class="entry_type_enum_name">GRBG</span>
10912 </li>
10913 <li>
10914 <span class="entry_type_enum_name">GBRG</span>
10915 </li>
10916 <li>
10917 <span class="entry_type_enum_name">BGGR</span>
10918 </li>
10919 <li>
10920 <span class="entry_type_enum_name">RGB</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080010921 <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
10922values for each pixel,<wbr/> instead of just 1 16-bit value
10923per pixel.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010924 </li>
10925 </ul>
10926
10927 </td> <!-- entry_type -->
10928
10929 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010930 <p>Arrangement of color filters on sensor;
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010931represents the colors in the top-left 2x2 section of
Igor Murashkin0b080452013-12-27 15:30:25 -080010932the sensor,<wbr/> in reading order</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010933 </td>
10934
10935 <td class="entry_units">
10936 </td>
10937
10938 <td class="entry_range">
10939 </td>
10940
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010941 <td class="entry_tags">
10942 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010943 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010944 </ul>
10945 </td>
10946
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010947 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010948
10949
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010950 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10951 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010952
10953
10954 <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010955 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010956 android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010957 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010958 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010959 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010960 <span class="entry_type_container">x</span>
10961
10962 <span class="entry_type_array">
10963 2
10964 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010965 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010966 <div class="entry_type_notes">nanoseconds</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010967
10968
10969 </td> <!-- entry_type -->
10970
10971 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010972 <p>Range of valid exposure
10973times</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010974 </td>
10975
10976 <td class="entry_units">
10977 </td>
10978
10979 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010980 <p>Min &lt;= 100e3 (100 us),<wbr/> Max &gt;= 30e9 (30
10981sec)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010982 </td>
10983
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010984 <td class="entry_tags">
10985 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010986 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010987 </ul>
10988 </td>
10989
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010990 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010991
10992
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010993 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10994 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010995
10996
10997 <tr class="entry" id="static_android.sensor.info.maxFrameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010998 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010999 android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011000 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011001 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011002 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011003
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011004 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011005
11006
11007 </td> <!-- entry_type -->
11008
11009 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011010 <p>Maximum possible frame duration (minimum frame
11011rate)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011012 </td>
11013
11014 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011015 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011016 </td>
11017
11018 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011019 <p>&gt;= 30e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011020 </td>
11021
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011022 <td class="entry_tags">
11023 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011024 <li><a href="#tag_BC">BC</a></li>
11025 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011026 </ul>
11027 </td>
11028
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011029 </tr>
11030 <tr class="entries_header">
11031 <th class="th_details" colspan="5">Details</th>
11032 </tr>
11033 <tr class="entry_cont">
11034 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011035 <p>Minimum duration is a function of resolution,<wbr/>
11036processing settings.<wbr/> See
11037android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
11038android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011039<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011040 </td>
11041 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011042
11043
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011044 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11045 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011046
11047
11048 <tr class="entry" id="static_android.sensor.info.physicalSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011049 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011050 android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011051 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011052 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011053 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011054 <span class="entry_type_container">x</span>
11055
11056 <span class="entry_type_array">
11057 2
11058 </span>
Timothy Knightec817d52013-08-16 16:15:29 -070011059 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011060 <div class="entry_type_notes">width x height in millimeters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011061
11062
11063 </td> <!-- entry_type -->
11064
11065 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011066 <p>The physical dimensions of the full pixel
11067array</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011068 </td>
11069
11070 <td class="entry_units">
11071 </td>
11072
11073 <td class="entry_range">
11074 </td>
11075
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011076 <td class="entry_tags">
11077 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011078 <li><a href="#tag_V1">V1</a></li>
11079 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011080 </ul>
11081 </td>
11082
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011083 </tr>
11084 <tr class="entries_header">
11085 <th class="th_details" colspan="5">Details</th>
11086 </tr>
11087 <tr class="entry_cont">
11088 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011089 <p>Needed for FOV calculation for old API</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011090 </td>
11091 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011092
11093
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011094 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11095 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011096
11097
11098 <tr class="entry" id="static_android.sensor.info.pixelArraySize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011099 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011100 android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011101 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011102 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011103 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011104 <span class="entry_type_container">x</span>
11105
11106 <span class="entry_type_array">
11107 2
11108 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070011109 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011110
11111
11112 </td> <!-- entry_type -->
11113
11114 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011115 <p>Dimensions of full pixel array,<wbr/> possibly
Zhijun Hebdc94c42014-01-21 18:28:30 -080011116including black calibration pixels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011117 </td>
11118
11119 <td class="entry_units">
11120 </td>
11121
11122 <td class="entry_range">
11123 </td>
11124
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011125 <td class="entry_tags">
11126 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011127 <li><a href="#tag_DNG">DNG</a></li>
11128 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011129 </ul>
11130 </td>
11131
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011132 </tr>
11133 <tr class="entries_header">
11134 <th class="th_details" colspan="5">Details</th>
11135 </tr>
11136 <tr class="entry_cont">
11137 <td class="entry_details" colspan="5">
Zhijun Hebdc94c42014-01-21 18:28:30 -080011138 <p>The maximum output resolution for raw format in
11139<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 -080011140 </td>
11141 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011142
11143
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011144 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11145 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011146
11147
11148 <tr class="entry" id="static_android.sensor.info.whiteLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011149 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011150 android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011151 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011152 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011153 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011154
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011155 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011156
11157
11158 </td> <!-- entry_type -->
11159
11160 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011161 <p>Maximum raw value output by
11162sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011163 </td>
11164
11165 <td class="entry_units">
11166 </td>
11167
11168 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011169 <p>&gt; 1024 (10-bit output)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011170 </td>
11171
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011172 <td class="entry_tags">
11173 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011174 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011175 </ul>
11176 </td>
11177
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011178 </tr>
11179 <tr class="entries_header">
11180 <th class="th_details" colspan="5">Details</th>
11181 </tr>
11182 <tr class="entry_cont">
11183 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011184 <p>Defines sensor bit depth (10-14 bits is
11185expected)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011186 </td>
11187 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011188
11189
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011190 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11191 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011192
11193
11194
11195
11196
11197 <tr class="entry" id="static_android.sensor.baseGainFactor">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011198 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011199 android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011200 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011201 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011202 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011203
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011204 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011205
11206
11207 </td> <!-- entry_type -->
11208
11209 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011210 <p>Gain factor from electrons to raw units when
11211ISO=100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011212 </td>
11213
11214 <td class="entry_units">
11215 </td>
11216
11217 <td class="entry_range">
11218 </td>
11219
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011220 <td class="entry_tags">
11221 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011222 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011223 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011224 </ul>
11225 </td>
11226
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011227 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011228
11229
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011230 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11231 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011232
11233
11234 <tr class="entry" id="static_android.sensor.blackLevelPattern">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011235 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011236 android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011237 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011238 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011239 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011240 <span class="entry_type_container">x</span>
11241
11242 <span class="entry_type_array">
11243 4
11244 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011245 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011246 <div class="entry_type_notes">2x2 raw count block</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011247
11248
11249 </td> <!-- entry_type -->
11250
11251 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011252 <p>A fixed black level offset for each of the
11253Bayer mosaic channels</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011254 </td>
11255
11256 <td class="entry_units">
11257 </td>
11258
11259 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011260 <p>&gt;= 0 each</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011261 </td>
11262
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011263 <td class="entry_tags">
11264 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011265 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011266 </ul>
11267 </td>
11268
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011269 </tr>
11270 <tr class="entries_header">
11271 <th class="th_details" colspan="5">Details</th>
11272 </tr>
11273 <tr class="entry_cont">
11274 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011275 <p>As per DNG BlackLevelRepeatDim /<wbr/> BlackLevel
11276tags</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011277 </td>
11278 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011279
11280
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011281 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11282 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011283
11284
11285 <tr class="entry" id="static_android.sensor.calibrationTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011286 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011287 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011288 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011289 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011290 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011291 <span class="entry_type_container">x</span>
11292
11293 <span class="entry_type_array">
11294 9
11295 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011296 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011297 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011298
11299
11300 </td> <!-- entry_type -->
11301
11302 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011303 <p>Per-device calibration on top of color space
11304transform 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011305 </td>
11306
11307 <td class="entry_units">
11308 </td>
11309
11310 <td class="entry_range">
11311 </td>
11312
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011313 <td class="entry_tags">
11314 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011315 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011316 </ul>
11317 </td>
11318
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011319 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011320
11321
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011322 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11323 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011324
11325
11326 <tr class="entry" id="static_android.sensor.calibrationTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011327 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011328 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011329 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011330 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011331 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011332 <span class="entry_type_container">x</span>
11333
11334 <span class="entry_type_array">
11335 9
11336 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011337 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011338 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011339
11340
11341 </td> <!-- entry_type -->
11342
11343 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011344 <p>Per-device calibration on top of color space
11345transform 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011346 </td>
11347
11348 <td class="entry_units">
11349 </td>
11350
11351 <td class="entry_range">
11352 </td>
11353
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011354 <td class="entry_tags">
11355 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011356 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011357 </ul>
11358 </td>
11359
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011360 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011361
11362
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011363 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11364 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011365
11366
11367 <tr class="entry" id="static_android.sensor.colorTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011368 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011369 android.<wbr/>sensor.<wbr/>color<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011370 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011371 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011372 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011373 <span class="entry_type_container">x</span>
11374
11375 <span class="entry_type_array">
11376 9
11377 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011378 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011379 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011380
11381
11382 </td> <!-- entry_type -->
11383
11384 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011385 <p>Linear mapping from XYZ (D50) color space to
11386reference linear sensor color,<wbr/> for first reference
11387illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011388 </td>
11389
11390 <td class="entry_units">
11391 </td>
11392
11393 <td class="entry_range">
11394 </td>
11395
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011396 <td class="entry_tags">
11397 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011398 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011399 </ul>
11400 </td>
11401
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011402 </tr>
11403 <tr class="entries_header">
11404 <th class="th_details" colspan="5">Details</th>
11405 </tr>
11406 <tr class="entry_cont">
11407 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011408 <p>Use as follows XYZ = inv(transform) * clip( (raw -
11409black level(raw) ) /<wbr/> ( white level - max black level) ).<wbr/>
11410At least in the simple case</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011411 </td>
11412 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011413
11414
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011415 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11416 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011417
11418
11419 <tr class="entry" id="static_android.sensor.colorTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011420 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011421 android.<wbr/>sensor.<wbr/>color<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011422 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011423 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011424 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011425 <span class="entry_type_container">x</span>
11426
11427 <span class="entry_type_array">
11428 9
11429 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011430 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011431 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011432
11433
11434 </td> <!-- entry_type -->
11435
11436 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011437 <p>Linear mapping from XYZ (D50) color space to
11438reference linear sensor color,<wbr/> for second reference
11439illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011440 </td>
11441
11442 <td class="entry_units">
11443 </td>
11444
11445 <td class="entry_range">
11446 </td>
11447
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011448 <td class="entry_tags">
11449 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011450 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011451 </ul>
11452 </td>
11453
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011454 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011455
11456
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011457 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11458 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011459
11460
11461 <tr class="entry" id="static_android.sensor.forwardMatrix1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011462 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011463 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011464 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011465 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011466 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011467 <span class="entry_type_container">x</span>
11468
11469 <span class="entry_type_array">
11470 9
11471 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011472 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011473 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011474
11475
11476 </td> <!-- entry_type -->
11477
11478 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011479 <p>Used by DNG for better WB
11480adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011481 </td>
11482
11483 <td class="entry_units">
11484 </td>
11485
11486 <td class="entry_range">
11487 </td>
11488
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011489 <td class="entry_tags">
11490 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011491 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011492 </ul>
11493 </td>
11494
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011495 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011496
11497
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011498 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11499 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011500
11501
11502 <tr class="entry" id="static_android.sensor.forwardMatrix2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011503 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011504 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011505 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011506 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011507 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011508 <span class="entry_type_container">x</span>
11509
11510 <span class="entry_type_array">
11511 9
11512 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011513 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011514 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011515
11516
11517 </td> <!-- entry_type -->
11518
11519 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011520 <p>Used by DNG for better WB
11521adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011522 </td>
11523
11524 <td class="entry_units">
11525 </td>
11526
11527 <td class="entry_range">
11528 </td>
11529
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011530 <td class="entry_tags">
11531 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011532 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011533 </ul>
11534 </td>
11535
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011536 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011537
11538
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011539 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11540 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011541
11542
11543 <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011544 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011545 android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011546 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011547 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011548 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011549
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011550 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011551
11552
11553 </td> <!-- entry_type -->
11554
11555 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011556 <p>Maximum sensitivity that is implemented
Zhijun Hebdc94c42014-01-21 18:28:30 -080011557purely through analog gain.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011558 </td>
11559
11560 <td class="entry_units">
11561 </td>
11562
11563 <td class="entry_range">
11564 </td>
11565
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011566 <td class="entry_tags">
11567 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011568 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011569 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011570 </ul>
11571 </td>
11572
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011573 </tr>
11574 <tr class="entries_header">
11575 <th class="th_details" colspan="5">Details</th>
11576 </tr>
11577 <tr class="entry_cont">
11578 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011579 <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 -080011580equal to this,<wbr/> all applied gain must be analog.<wbr/> For
Zhijun Hebdc94c42014-01-21 18:28:30 -080011581values above this,<wbr/> the gain applied can be a mix of analog and
11582digital.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011583 </td>
11584 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011585
11586
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011587 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11588 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011589
11590
11591 <tr class="entry" id="static_android.sensor.noiseModelCoefficients">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011592 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011593 android.<wbr/>sensor.<wbr/>noise<wbr/>Model<wbr/>Coefficients
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011594 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011595 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011596 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011597 <span class="entry_type_container">x</span>
11598
11599 <span class="entry_type_array">
11600 2
11601 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011602 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011603 <div class="entry_type_notes">float constants A,<wbr/> B for the noise variance model</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011604
11605
11606 </td> <!-- entry_type -->
11607
11608 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011609 <p>Estimation of sensor noise
11610characteristics</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011611 </td>
11612
11613 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011614 var(raw pixel value) = electrons * (baseGainFactor
11615 * iso/<wbr/>100)^2 + A * (baseGainFactor * iso/<wbr/>100)^2 +
11616 B
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011617 </td>
11618
11619 <td class="entry_range">
11620 </td>
11621
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011622 <td class="entry_tags">
11623 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011624 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011625 </ul>
11626 </td>
11627
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011628 </tr>
11629 <tr class="entries_header">
11630 <th class="th_details" colspan="5">Details</th>
11631 </tr>
11632 <tr class="entry_cont">
11633 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011634 <p>A represents sensor read noise before analog
11635amplification; B represents noise from A/<wbr/>D conversion and
11636other circuits after amplification.<wbr/> Both noise sources
11637are assumed to be gaussian,<wbr/> independent,<wbr/> and not to vary
11638across the sensor</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011639 </td>
11640 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011641
11642
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011643 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11644 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011645
11646
11647 <tr class="entry" id="static_android.sensor.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011648 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011649 android.<wbr/>sensor.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011650 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011651 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011652 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011653
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011654 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011655
11656
11657 </td> <!-- entry_type -->
11658
11659 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011660 <p>Clockwise angle through which the output
Igor Murashkin8aa2a112013-12-09 12:06:17 -080011661image needs to be rotated to be upright on the device
Igor Murashkin0b080452013-12-27 15:30:25 -080011662screen in its native orientation.<wbr/> Also defines the
11663direction of rolling shutter readout,<wbr/> which is from top
11664to bottom in the sensor's coordinate system</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011665 </td>
11666
11667 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011668 degrees clockwise rotation,<wbr/> only multiples of
11669 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011670 </td>
11671
11672 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011673 <p>0,<wbr/>90,<wbr/>180,<wbr/>270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011674 </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_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011679 </ul>
11680 </td>
11681
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011682 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011683
11684
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011685 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11686 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011687
11688
11689 <tr class="entry" id="static_android.sensor.referenceIlluminant1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011690 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011691 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011692 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011693 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011694 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011695
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011696 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011697
11698 <ul class="entry_type_enum">
11699 <li>
11700 <span class="entry_type_enum_name">DAYLIGHT</span>
11701 <span class="entry_type_enum_value">1</span>
11702 </li>
11703 <li>
11704 <span class="entry_type_enum_name">FLUORESCENT</span>
11705 <span class="entry_type_enum_value">2</span>
11706 </li>
11707 <li>
11708 <span class="entry_type_enum_name">TUNGSTEN</span>
11709 <span class="entry_type_enum_value">3</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011710 <span class="entry_type_enum_notes"><p>Incandescent light</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011711 </li>
11712 <li>
11713 <span class="entry_type_enum_name">FLASH</span>
11714 <span class="entry_type_enum_value">4</span>
11715 </li>
11716 <li>
11717 <span class="entry_type_enum_name">FINE_WEATHER</span>
11718 <span class="entry_type_enum_value">9</span>
11719 </li>
11720 <li>
11721 <span class="entry_type_enum_name">CLOUDY_WEATHER</span>
11722 <span class="entry_type_enum_value">10</span>
11723 </li>
11724 <li>
11725 <span class="entry_type_enum_name">SHADE</span>
11726 <span class="entry_type_enum_value">11</span>
11727 </li>
11728 <li>
11729 <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span>
11730 <span class="entry_type_enum_value">12</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011731 <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011732 </li>
11733 <li>
11734 <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span>
11735 <span class="entry_type_enum_value">13</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011736 <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011737 </li>
11738 <li>
11739 <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span>
11740 <span class="entry_type_enum_value">14</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011741 <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011742 </li>
11743 <li>
11744 <span class="entry_type_enum_name">WHITE_FLUORESCENT</span>
11745 <span class="entry_type_enum_value">15</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011746 <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011747 </li>
11748 <li>
11749 <span class="entry_type_enum_name">STANDARD_A</span>
11750 <span class="entry_type_enum_value">17</span>
11751 </li>
11752 <li>
11753 <span class="entry_type_enum_name">STANDARD_B</span>
11754 <span class="entry_type_enum_value">18</span>
11755 </li>
11756 <li>
11757 <span class="entry_type_enum_name">STANDARD_C</span>
11758 <span class="entry_type_enum_value">19</span>
11759 </li>
11760 <li>
11761 <span class="entry_type_enum_name">D55</span>
11762 <span class="entry_type_enum_value">20</span>
11763 </li>
11764 <li>
11765 <span class="entry_type_enum_name">D65</span>
11766 <span class="entry_type_enum_value">21</span>
11767 </li>
11768 <li>
11769 <span class="entry_type_enum_name">D75</span>
11770 <span class="entry_type_enum_value">22</span>
11771 </li>
11772 <li>
11773 <span class="entry_type_enum_name">D50</span>
11774 <span class="entry_type_enum_value">23</span>
11775 </li>
11776 <li>
11777 <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span>
11778 <span class="entry_type_enum_value">24</span>
11779 </li>
11780 </ul>
11781
11782 </td> <!-- entry_type -->
11783
11784 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011785 <p>Light source used to define transform
117861</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011787 </td>
11788
11789 <td class="entry_units">
11790 </td>
11791
11792 <td class="entry_range">
11793 </td>
11794
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011795 <td class="entry_tags">
11796 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011797 <li><a href="#tag_DNG">DNG</a></li>
11798 <li><a href="#tag_EXIF">EXIF</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011799 </ul>
11800 </td>
11801
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011802 </tr>
11803 <tr class="entries_header">
11804 <th class="th_details" colspan="5">Details</th>
11805 </tr>
11806 <tr class="entry_cont">
11807 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011808 <p>[EXIF LightSource tag] Must all these be
11809supported? Need CCT for each!</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011810 </td>
11811 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011812
11813
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011814 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11815 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011816
11817
11818 <tr class="entry" id="static_android.sensor.referenceIlluminant2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011819 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011820 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011821 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011822 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011823 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011824
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011825 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011826
11827
11828 </td> <!-- entry_type -->
11829
11830 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011831 <p>Light source used to define transform
118322</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011833 </td>
11834
11835 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011836 Same as illuminant 1
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011837 </td>
11838
11839 <td class="entry_range">
11840 </td>
11841
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011842 <td class="entry_tags">
11843 </td>
11844
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011845 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011846
11847
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011848 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11849 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011850
Igor Murashkina46e02f2014-01-09 17:43:38 -080011851
11852 <tr class="entry" id="static_android.sensor.availableTestPatternModes">
11853 <td class="entry_name" rowspan="1">
11854 android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes
11855 </td>
11856 <td class="entry_type">
11857 <span class="entry_type_name">byte</span>
11858
11859 <span class="entry_type_visibility"> [public]</span>
11860
11861
11862 </td> <!-- entry_type -->
11863
11864 <td class="entry_description">
11865 <p>Optional.<wbr/> Defaults to [OFF].<wbr/> Lists the supported test
11866pattern modes for android.<wbr/>test.<wbr/>pattern<wbr/>Mode.<wbr/></p>
11867 </td>
11868
11869 <td class="entry_units">
11870 </td>
11871
11872 <td class="entry_range">
11873 <p>Must include OFF.<wbr/> All custom modes must be &gt;= CUSTOM1</p>
11874 </td>
11875
11876 <td class="entry_tags">
11877 </td>
11878
11879 </tr>
11880
11881
11882 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11883 <!-- end of entry -->
11884
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011885
11886
11887 <!-- end of kind -->
11888 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011889 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011890
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011891 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011892 <tr>
11893 <th class="th_name">Property Name</th>
11894 <th class="th_type">Type</th>
11895 <th class="th_description">Description</th>
11896 <th class="th_units">Units</th>
11897 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011898 <th class="th_tags">Tags</th>
11899 </tr>
11900 </thead>
11901
11902 <tbody>
11903
11904
11905
11906
11907
11908
11909
11910
11911
11912
11913 <tr class="entry" id="dynamic_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011914 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011915 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011916 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011917 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011918 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011919
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011920 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011921
11922
11923 </td> <!-- entry_type -->
11924
11925 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011926 <p>Duration each pixel is exposed to
11927light.<wbr/></p>
11928<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
11929duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011930 </td>
11931
11932 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011933 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011934 </td>
11935
11936 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011937 <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 -080011938 </td>
11939
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011940 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011941 <ul class="entry_tags">
11942 <li><a href="#tag_V1">V1</a></li>
11943 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011944 </td>
11945
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011946 </tr>
11947 <tr class="entries_header">
11948 <th class="th_details" colspan="5">Details</th>
11949 </tr>
11950 <tr class="entry_cont">
11951 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011952 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011953 </td>
11954 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011955
11956
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011957 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11958 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011959
11960
11961 <tr class="entry" id="dynamic_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011962 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011963 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011964 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011965 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011966 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011967
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011968 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011969
11970
11971 </td> <!-- entry_type -->
11972
11973 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011974 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080011975start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011976 </td>
11977
11978 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011979 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011980 </td>
11981
11982 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080011983 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
11984android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
11985is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011986 </td>
11987
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011988 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011989 <ul class="entry_tags">
11990 <li><a href="#tag_V1">V1</a></li>
11991 <li><a href="#tag_BC">BC</a></li>
11992 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011993 </td>
11994
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011995 </tr>
11996 <tr class="entries_header">
11997 <th class="th_details" colspan="5">Details</th>
11998 </tr>
11999 <tr class="entry_cont">
12000 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012001 <p>The maximum frame rate that can be supported by a camera subsystem is
12002a function of many factors:</p>
12003<ul>
12004<li>Requested resolutions of output image streams</li>
12005<li>Availability of binning /<wbr/> skipping modes on the imager</li>
12006<li>The bandwidth of the imager interface</li>
12007<li>The bandwidth of the various ISP processing blocks</li>
12008</ul>
12009<p>Since these factors can vary greatly between different ISPs and
12010sensors,<wbr/> the camera abstraction tries to represent the bandwidth
12011restrictions with as simple a model as possible.<wbr/></p>
12012<p>The model presented has the following characteristics:</p>
12013<ul>
12014<li>The image sensor is always configured to output the smallest
12015resolution possible given the application's requested output stream
12016sizes.<wbr/> The smallest resolution is defined as being at least as large
12017as the largest requested output stream size; the camera pipeline must
12018never digitally upsample sensor data when the crop region covers the
12019whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
12020resolutions are configured,<wbr/> the sensor can provide a higher frame
12021rate.<wbr/></li>
12022<li>Since any request may use any or all the currently configured
12023output streams,<wbr/> the sensor and ISP must be configured to support
12024scaling a single capture to all the streams at the same time.<wbr/> This
12025means the camera pipeline must be ready to produce the largest
12026requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
12027frame rate of a given configured stream set is governed only by the
12028largest requested stream resolution.<wbr/></li>
12029<li>Using more than one output stream in a request does not affect the
12030frame duration.<wbr/></li>
12031<li>JPEG streams act like processed YUV streams in requests for which
12032they are not included; in requests in which they are directly
12033referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
12034JPEG stream requires the underlying YUV data to always be ready for
12035use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
12036frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
12037<li>The JPEG processor can run concurrently to the rest of the camera
12038pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
12039</ul>
12040<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
12041is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
12042These are used to determine the maximum frame rate /<wbr/> minimum frame
12043duration that is possible for a given stream configuration.<wbr/></p>
12044<p>Specifically,<wbr/> the application can use the following rules to
12045determine the minimum frame duration it can request from the HAL
12046device:</p>
12047<ol>
12048<li>Given the application's currently configured set of output
12049streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
12050<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
12051<code>SP</code>.<wbr/></li>
12052<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
12053count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
12054<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
12055<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
12056no exact match for <code>RP == RJ</code> (in particular there isn't an available
12057processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
12058to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
12059there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
12060the processed resolution closest to <code>RJ</code>.<wbr/></li>
12061<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
12062no exact match for <code>RR == RP</code> (in particular there isn't an available
12063raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
12064or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
12065there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
12066the raw resolution closest to <code>RP</code>.<wbr/></li>
12067<li>Look up the matching minimum frame durations in the property lists
12068<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
12069<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
12070<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
12071minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
12072<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
12073supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
12074<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
12075supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
12076<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
12077the application,<wbr/> then the HAL will have to delay JPEG-using requests
12078whenever the JPEG encoder is still busy processing an older capture.<wbr/>
12079This will happen whenever a JPEG-using request starts capture less
12080than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
12081supported frame duration will vary between the values calculated in
12082#6 and #7.<wbr/></li>
12083</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012084 </td>
12085 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012086
12087
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012088 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12089 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012090
12091
12092 <tr class="entry" id="dynamic_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012093 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012094 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012095 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012096 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012097 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012098
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012099 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012100
12101
12102 </td> <!-- entry_type -->
12103
12104 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012105 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012106implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080012107below 'maximum analog sensitivity'.<wbr/></p>
12108<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
12109gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012110 </td>
12111
12112 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012113 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012114 </td>
12115
12116 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012117 <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 -080012118 </td>
12119
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012120 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012121 <ul class="entry_tags">
12122 <li><a href="#tag_V1">V1</a></li>
12123 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012124 </td>
12125
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012126 </tr>
12127 <tr class="entries_header">
12128 <th class="th_details" colspan="5">Details</th>
12129 </tr>
12130 <tr class="entry_cont">
12131 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012132 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012133 </td>
12134 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012135
12136
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012137 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12138 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012139
12140
12141 <tr class="entry" id="dynamic_android.sensor.timestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012142 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012143 android.<wbr/>sensor.<wbr/>timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012144 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012145 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012146 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012147
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012148 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012149
12150
12151 </td> <!-- entry_type -->
12152
12153 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012154 <p>Time at start of exposure of first
12155row</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012156 </td>
12157
12158 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012159 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012160 </td>
12161
12162 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012163 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012164 </td>
12165
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012166 <td class="entry_tags">
12167 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012168 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012169 </ul>
12170 </td>
12171
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012172 </tr>
12173 <tr class="entries_header">
12174 <th class="th_details" colspan="5">Details</th>
12175 </tr>
12176 <tr class="entry_cont">
12177 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012178 <p>Monotonic,<wbr/> should be synced to other timestamps in
12179system</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012180 </td>
12181 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012182
12183
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012184 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12185 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012186
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012187
12188 <tr class="entry" id="dynamic_android.sensor.temperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012189 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012190 android.<wbr/>sensor.<wbr/>temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012191 </td>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012192 <td class="entry_type">
12193 <span class="entry_type_name">float</span>
12194
12195 <span class="entry_type_visibility"> [public]</span>
12196
12197
12198 </td> <!-- entry_type -->
12199
12200 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012201 <p>The temperature of the sensor,<wbr/> sampled at the time
12202exposure began for this frame.<wbr/></p>
12203<p>The thermal diode being queried should be inside the sensor PCB,<wbr/> or
12204somewhere close to it.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012205 </td>
12206
12207 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012208 celsius
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012209 </td>
12210
12211 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012212 <p>Optional.<wbr/> This value is missing if no temperature is available.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012213 </td>
12214
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012215 <td class="entry_tags">
Alex Rayef40ad62013-10-01 17:52:33 -070012216 <ul class="entry_tags">
12217 <li><a href="#tag_FULL">FULL</a></li>
12218 </ul>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012219 </td>
12220
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012221 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012222
12223
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012224 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12225 <!-- end of entry -->
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012226
Igor Murashkina46e02f2014-01-09 17:43:38 -080012227
12228 <tr class="entry" id="dynamic_android.sensor.testPatternMode">
12229 <td class="entry_name" rowspan="5">
12230 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
12231 </td>
12232 <td class="entry_type">
12233 <span class="entry_type_name entry_type_name_enum">int32</span>
12234
12235 <span class="entry_type_visibility"> [public]</span>
12236
12237 <ul class="entry_type_enum">
12238 <li>
12239 <span class="entry_type_enum_name">OFF</span>
12240 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
12241device returns captures from the image sensor.<wbr/></p></span>
12242 </li>
12243 <li>
12244 <span class="entry_type_enum_name">SOLID_COLOR</span>
12245 <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
12246respective color channel provided in
12247<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
12248<p>For example:</p>
12249<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12250</code></pre>
12251<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
12252<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12253</code></pre>
12254<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
12255are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
12256 </li>
12257 <li>
12258 <span class="entry_type_enum_name">COLOR_BARS</span>
12259 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
12260<p>The vertical bars (left-to-right) are as follows:</p>
12261<ul>
12262<li>100% white</li>
12263<li>yellow</li>
12264<li>cyan</li>
12265<li>green</li>
12266<li>magenta</li>
12267<li>red</li>
12268<li>blue</li>
12269<li>black</li>
12270</ul>
12271<p>In general the image would look like the following:</p>
12272<pre><code>W Y C G M R B K
12273W Y C G M R B K
12274W Y C G M R B K
12275W Y C G M R B K
12276W Y C G M R B K
12277.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12278.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12279.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12280
12281(B = Blue,<wbr/> K = Black)
12282</code></pre>
12283<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
12284When this is not possible,<wbr/> the bar size should be rounded
12285down to the nearest integer and the pattern can repeat
12286on the right side.<wbr/></p>
12287<p>Each bar's height must always take up the full sensor
12288pixel array height.<wbr/></p>
12289<p>Each pixel in this test pattern must be set to either
122900% intensity or 100% intensity.<wbr/></p></span>
12291 </li>
12292 <li>
12293 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
12294 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
12295each bar should start at its specified color at the top,<wbr/>
12296and fade to gray at the bottom.<wbr/></p>
12297<p>Furthermore each bar is further subdivided into a left and
12298right half.<wbr/> The left half should have a smooth gradient,<wbr/>
12299and the right half should have a quantized gradient.<wbr/></p>
12300<p>In particular,<wbr/> the right half's should consist of blocks of the
12301same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
12302<p>The least significant bits in the quantized gradient should
12303be copied from the most significant bits of the smooth gradient.<wbr/></p>
12304<p>The height of each bar should always be a multiple of 128.<wbr/>
12305When this is not the case,<wbr/> the pattern should repeat at the bottom
12306of the image.<wbr/></p></span>
12307 </li>
12308 <li>
12309 <span class="entry_type_enum_name">PN9</span>
12310 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
12311generated from a PN9 512-bit sequence (typically implemented
12312in hardware with a linear feedback shift register).<wbr/></p>
12313<p>The generator should be reset at the beginning of each frame,<wbr/>
12314and thus each subsequent raw frame with this test pattern should
12315be exactly the same as the last.<wbr/></p></span>
12316 </li>
12317 <li>
12318 <span class="entry_type_enum_name">CUSTOM1</span>
12319 <span class="entry_type_enum_value">256</span>
12320 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
12321available only on this camera device are at least this numeric
12322value.<wbr/></p>
12323<p>All of the custom test patterns will be static
12324(that is the raw image must not vary from frame to frame).<wbr/></p></span>
12325 </li>
12326 </ul>
12327
12328 </td> <!-- entry_type -->
12329
12330 <td class="entry_description">
12331 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
12332doing a real exposure from the camera.<wbr/></p>
12333 </td>
12334
12335 <td class="entry_units">
12336 </td>
12337
12338 <td class="entry_range">
12339 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
12340<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
12341 </td>
12342
12343 <td class="entry_tags">
12344 </td>
12345
12346 </tr>
12347 <tr class="entries_header">
12348 <th class="th_details" colspan="5">Details</th>
12349 </tr>
12350 <tr class="entry_cont">
12351 <td class="entry_details" colspan="5">
12352 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
12353by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
12354work as normal.<wbr/></p>
12355<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
12356occur (and that the test pattern remain unmodified,<wbr/> since the flash
12357would not actually affect it).<wbr/></p>
12358 </td>
12359 </tr>
12360
12361 <tr class="entries_header">
12362 <th class="th_details" colspan="5">HAL Implementation Details</th>
12363 </tr>
12364 <tr class="entry_cont">
12365 <td class="entry_details" colspan="5">
12366 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
12367<p>The HAL may choose to substitute test patterns from the sensor
12368with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
12369indistinguishable to the ISP whether the data came from the
12370sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
12371 </td>
12372 </tr>
12373
12374 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12375 <!-- end of entry -->
12376
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012377
12378
12379 <!-- end of kind -->
12380 </tbody>
12381
12382 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012383 <tr><td colspan="6" id="section_shading" class="section">shading</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012384
12385
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012386 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012387
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012388 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012389 <tr>
12390 <th class="th_name">Property Name</th>
12391 <th class="th_type">Type</th>
12392 <th class="th_description">Description</th>
12393 <th class="th_units">Units</th>
12394 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012395 <th class="th_tags">Tags</th>
12396 </tr>
12397 </thead>
12398
12399 <tbody>
12400
12401
12402
12403
12404
12405
12406
12407
12408
12409
12410 <tr class="entry" id="controls_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012411 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012412 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012413 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012414 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012415 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012416
Zhijun He2f86a212014-01-15 10:34:02 -080012417 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012418
12419 <ul class="entry_type_enum">
12420 <li>
12421 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012422 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012423 </li>
12424 <li>
12425 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012426 <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 -080012427 </li>
12428 <li>
12429 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012430 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012431 </li>
12432 </ul>
12433
12434 </td> <!-- entry_type -->
12435
12436 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012437 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012438to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012439 </td>
12440
12441 <td class="entry_units">
12442 </td>
12443
12444 <td class="entry_range">
12445 </td>
12446
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012447 <td class="entry_tags">
12448 </td>
12449
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012450 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012451 <tr class="entries_header">
12452 <th class="th_details" colspan="5">Details</th>
12453 </tr>
12454 <tr class="entry_cont">
12455 <td class="entry_details" colspan="5">
12456 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12457camera device,<wbr/> and an identity lens shading map data will be provided
12458if <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
12459shading 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/>
12460the 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
12461shown below:</p>
12462<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/>
12463 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/>
12464 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/>
12465 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/>
12466 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/>
12467 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 ]
12468</code></pre>
12469<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12470camera device.<wbr/> Applications can request lens shading map data by setting
12471<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
12472lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12473by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12474 </td>
12475 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012476
12477
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012478 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12479 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012480
12481
12482 <tr class="entry" id="controls_android.shading.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012483 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012484 android.<wbr/>shading.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012485 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012486 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012487 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012488
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012489 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012490
12491
12492 </td> <!-- entry_type -->
12493
12494 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012495 <p>Control the amount of shading correction
12496applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012497 </td>
12498
12499 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012500 unitless: 1-10; 10 is full shading
12501 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012502 </td>
12503
12504 <td class="entry_range">
12505 </td>
12506
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012507 <td class="entry_tags">
12508 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012509 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012510 </ul>
12511 </td>
12512
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012513 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012514
12515
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012516 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12517 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012518
12519
12520
12521 <!-- end of kind -->
12522 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012523 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012524
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012525 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012526 <tr>
12527 <th class="th_name">Property Name</th>
12528 <th class="th_type">Type</th>
12529 <th class="th_description">Description</th>
12530 <th class="th_units">Units</th>
12531 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012532 <th class="th_tags">Tags</th>
12533 </tr>
12534 </thead>
12535
12536 <tbody>
12537
12538
12539
12540
12541
12542
12543
12544
12545
12546
12547 <tr class="entry" id="dynamic_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012548 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012549 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012550 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012551 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012552 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012553
Zhijun He2f86a212014-01-15 10:34:02 -080012554 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012555
12556 <ul class="entry_type_enum">
12557 <li>
12558 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012559 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012560 </li>
12561 <li>
12562 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012563 <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 -080012564 </li>
12565 <li>
12566 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012567 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012568 </li>
12569 </ul>
12570
12571 </td> <!-- entry_type -->
12572
12573 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012574 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012575to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012576 </td>
12577
12578 <td class="entry_units">
12579 </td>
12580
12581 <td class="entry_range">
12582 </td>
12583
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012584 <td class="entry_tags">
12585 </td>
12586
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012587 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012588 <tr class="entries_header">
12589 <th class="th_details" colspan="5">Details</th>
12590 </tr>
12591 <tr class="entry_cont">
12592 <td class="entry_details" colspan="5">
12593 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12594camera device,<wbr/> and an identity lens shading map data will be provided
12595if <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
12596shading 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/>
12597the 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
12598shown below:</p>
12599<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/>
12600 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/>
12601 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/>
12602 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/>
12603 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/>
12604 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 ]
12605</code></pre>
12606<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12607camera device.<wbr/> Applications can request lens shading map data by setting
12608<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
12609lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12610by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12611 </td>
12612 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012613
12614
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012615 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12616 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012617
12618
12619
12620 <!-- end of kind -->
12621 </tbody>
12622
12623 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012624 <tr><td colspan="6" id="section_statistics" class="section">statistics</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012625
12626
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012627 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012628
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012629 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012630 <tr>
12631 <th class="th_name">Property Name</th>
12632 <th class="th_type">Type</th>
12633 <th class="th_description">Description</th>
12634 <th class="th_units">Units</th>
12635 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012636 <th class="th_tags">Tags</th>
12637 </tr>
12638 </thead>
12639
12640 <tbody>
12641
12642
12643
12644
12645
12646
12647
12648
12649
12650
12651 <tr class="entry" id="controls_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012652 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012653 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012654 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012655 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012656 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012657
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012658 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012659
12660 <ul class="entry_type_enum">
12661 <li>
12662 <span class="entry_type_enum_name">OFF</span>
12663 </li>
12664 <li>
12665 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012666 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
12667only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012668 </li>
12669 <li>
12670 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012671 <span class="entry_type_enum_notes"><p>Optional Return all face
12672metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012673 </li>
12674 </ul>
12675
12676 </td> <!-- entry_type -->
12677
12678 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012679 <p>State of the face detector
12680unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012681 </td>
12682
12683 <td class="entry_units">
12684 </td>
12685
12686 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012687 <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 -080012688 </td>
12689
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012690 <td class="entry_tags">
12691 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012692 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012693 </ul>
12694 </td>
12695
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012696 </tr>
12697 <tr class="entries_header">
12698 <th class="th_details" colspan="5">Details</th>
12699 </tr>
12700 <tr class="entry_cont">
12701 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012702 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012703should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080012704fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012705<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 -080012706 </td>
12707 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012708
12709
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012710 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12711 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012712
12713
12714 <tr class="entry" id="controls_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012715 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012716 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012717 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012718 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012719 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012720
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012721 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012722
12723 <ul class="entry_type_enum">
12724 <li>
12725 <span class="entry_type_enum_name">OFF</span>
12726 </li>
12727 <li>
12728 <span class="entry_type_enum_name">ON</span>
12729 </li>
12730 </ul>
12731
12732 </td> <!-- entry_type -->
12733
12734 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012735 <p>Operating mode for histogram
12736generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012737 </td>
12738
12739 <td class="entry_units">
12740 </td>
12741
12742 <td class="entry_range">
12743 </td>
12744
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012745 <td class="entry_tags">
12746 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012747 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012748 </ul>
12749 </td>
12750
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012751 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012752
12753
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012754 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12755 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012756
12757
12758 <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012759 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012760 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012761 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012762 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012763 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012764
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012765 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012766
12767 <ul class="entry_type_enum">
12768 <li>
12769 <span class="entry_type_enum_name">OFF</span>
12770 </li>
12771 <li>
12772 <span class="entry_type_enum_name">ON</span>
12773 </li>
12774 </ul>
12775
12776 </td> <!-- entry_type -->
12777
12778 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012779 <p>Operating mode for sharpness map
12780generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012781 </td>
12782
12783 <td class="entry_units">
12784 </td>
12785
12786 <td class="entry_range">
12787 </td>
12788
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012789 <td class="entry_tags">
12790 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012791 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012792 </ul>
12793 </td>
12794
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012795 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012796
12797
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012798 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12799 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012800
Zhijun He69fc0ea2013-07-17 09:42:58 -070012801
12802 <tr class="entry" id="controls_android.statistics.lensShadingMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012803 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012804 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012805 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012806 <td class="entry_type">
12807 <span class="entry_type_name entry_type_name_enum">byte</span>
12808
12809 <span class="entry_type_visibility"> [public]</span>
12810
12811 <ul class="entry_type_enum">
12812 <li>
12813 <span class="entry_type_enum_name">OFF</span>
12814 </li>
12815 <li>
12816 <span class="entry_type_enum_name">ON</span>
12817 </li>
12818 </ul>
12819
12820 </td> <!-- entry_type -->
12821
12822 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012823 <p>Whether the HAL needs to output the lens
12824shading map in output result metadata</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012825 </td>
12826
12827 <td class="entry_units">
12828 </td>
12829
12830 <td class="entry_range">
12831 </td>
12832
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012833 <td class="entry_tags">
12834 </td>
12835
12836 </tr>
12837 <tr class="entries_header">
12838 <th class="th_details" colspan="5">Details</th>
12839 </tr>
12840 <tr class="entry_cont">
12841 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012842 <p>When set to ON,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012843<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 -080012844the output result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012845 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012846 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012847
12848
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012849 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12850 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070012851
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012852
12853
12854 <!-- end of kind -->
12855 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012856 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012857
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012858 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012859 <tr>
12860 <th class="th_name">Property Name</th>
12861 <th class="th_type">Type</th>
12862 <th class="th_description">Description</th>
12863 <th class="th_units">Units</th>
12864 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012865 <th class="th_tags">Tags</th>
12866 </tr>
12867 </thead>
12868
12869 <tbody>
12870
12871
12872
12873
12874
12875
12876
12877
12878
12879
12880
12881
12882 <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012883 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012884 android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012885 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012886 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012887 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012888 <span class="entry_type_container">x</span>
12889
12890 <span class="entry_type_array">
12891 n
12892 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012893 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080012894 <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 -080012895
12896
12897 </td> <!-- entry_type -->
12898
12899 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012900 <p>Which face detection modes are available,<wbr/>
12901if any</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012902 </td>
12903
12904 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012905 List of enum:
Zhijun He69fc0ea2013-07-17 09:42:58 -070012906 OFF
12907 SIMPLE
Igor Murashkin0b080452013-12-27 15:30:25 -080012908 FULL
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012909 </td>
12910
12911 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012912 </td>
12913
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012914 <td class="entry_tags">
12915 </td>
12916
12917 </tr>
12918 <tr class="entries_header">
12919 <th class="th_details" colspan="5">Details</th>
12920 </tr>
12921 <tr class="entry_cont">
12922 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012923 <p>OFF means face detection is disabled,<wbr/> it must
12924be included in the list.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012925<p>SIMPLE means the device supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012926<a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
12927<a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a> outputs.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012928<p>FULL means the device additionally supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012929<a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a> and
12930<a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a> outputs.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012931 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012932 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012933
12934
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012935 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12936 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012937
12938
12939 <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012940 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012941 android.<wbr/>statistics.<wbr/>info.<wbr/>histogram<wbr/>Bucket<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012942 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012943 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012944 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012945
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012946 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012947
12948
12949 </td> <!-- entry_type -->
12950
12951 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012952 <p>Number of histogram buckets
12953supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012954 </td>
12955
12956 <td class="entry_units">
12957 </td>
12958
12959 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012960 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012961 </td>
12962
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012963 <td class="entry_tags">
12964 </td>
12965
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012966 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012967
12968
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012969 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12970 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012971
12972
12973 <tr class="entry" id="static_android.statistics.info.maxFaceCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012974 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012975 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012976 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012977 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012978 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012979
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012980 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012981
12982
12983 </td> <!-- entry_type -->
12984
12985 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012986 <p>Maximum number of simultaneously detectable
12987faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012988 </td>
12989
12990 <td class="entry_units">
12991 </td>
12992
12993 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012994 <p>&gt;= 4 if availableFaceDetectionModes lists
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012995modes besides OFF,<wbr/> otherwise 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012996 </td>
12997
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012998 <td class="entry_tags">
12999 </td>
13000
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013001 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013002
13003
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013004 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13005 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013006
13007
13008 <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013009 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013010 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Histogram<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013011 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013012 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013013 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013014
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013015 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013016
13017
13018 </td> <!-- entry_type -->
13019
13020 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013021 <p>Maximum value possible for a histogram
13022bucket</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013023 </td>
13024
13025 <td class="entry_units">
13026 </td>
13027
13028 <td class="entry_range">
13029 </td>
13030
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013031 <td class="entry_tags">
13032 </td>
13033
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013034 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013035
13036
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013037 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13038 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013039
13040
13041 <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013042 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013043 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Sharpness<wbr/>Map<wbr/>Value
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013044 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013045 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013046 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013047
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013048 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013049
13050
13051 </td> <!-- entry_type -->
13052
13053 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013054 <p>Maximum value possible for a sharpness map
13055region.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013056 </td>
13057
13058 <td class="entry_units">
13059 </td>
13060
13061 <td class="entry_range">
13062 </td>
13063
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013064 <td class="entry_tags">
13065 </td>
13066
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013067 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013068
13069
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013070 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13071 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013072
13073
13074 <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013075 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013076 android.<wbr/>statistics.<wbr/>info.<wbr/>sharpness<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013077 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013078 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013079 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013080 <span class="entry_type_container">x</span>
13081
13082 <span class="entry_type_array">
13083 2
13084 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013085 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013086 <div class="entry_type_notes">width x height</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013087
13088
13089 </td> <!-- entry_type -->
13090
13091 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013092 <p>Dimensions of the sharpness
13093map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013094 </td>
13095
13096 <td class="entry_units">
13097 </td>
13098
13099 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013100 <p>Must be at least 32 x 32</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013101 </td>
13102
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013103 <td class="entry_tags">
13104 </td>
13105
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013106 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013107
13108
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013109 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13110 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013111
13112
13113
13114
13115
13116
13117 <!-- end of kind -->
13118 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013119 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013120
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013121 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013122 <tr>
13123 <th class="th_name">Property Name</th>
13124 <th class="th_type">Type</th>
13125 <th class="th_description">Description</th>
13126 <th class="th_units">Units</th>
13127 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013128 <th class="th_tags">Tags</th>
13129 </tr>
13130 </thead>
13131
13132 <tbody>
13133
13134
13135
13136
13137
13138
13139
13140
13141
13142
13143 <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013144 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013145 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013146 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013147 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013148 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013149
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013150 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013151
13152 <ul class="entry_type_enum">
13153 <li>
13154 <span class="entry_type_enum_name">OFF</span>
13155 </li>
13156 <li>
13157 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013158 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
13159only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013160 </li>
13161 <li>
13162 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013163 <span class="entry_type_enum_notes"><p>Optional Return all face
13164metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013165 </li>
13166 </ul>
13167
13168 </td> <!-- entry_type -->
13169
13170 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013171 <p>State of the face detector
13172unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013173 </td>
13174
13175 <td class="entry_units">
13176 </td>
13177
13178 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013179 <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 -080013180 </td>
13181
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013182 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013183 <ul class="entry_tags">
13184 <li><a href="#tag_BC">BC</a></li>
13185 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013186 </td>
13187
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013188 </tr>
13189 <tr class="entries_header">
13190 <th class="th_details" colspan="5">Details</th>
13191 </tr>
13192 <tr class="entry_cont">
13193 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013194 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013195should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080013196fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013197<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 -080013198 </td>
13199 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013200
13201
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013202 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13203 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013204
13205
13206 <tr class="entry" id="dynamic_android.statistics.faceIds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013207 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013208 android.<wbr/>statistics.<wbr/>face<wbr/>Ids
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013209 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013210 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013211 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013212 <span class="entry_type_container">x</span>
13213
13214 <span class="entry_type_array">
13215 n
13216 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013217 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013218
13219
13220 </td> <!-- entry_type -->
13221
13222 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013223 <p>List of unique IDs for detected
13224faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013225 </td>
13226
13227 <td class="entry_units">
13228 </td>
13229
13230 <td class="entry_range">
13231 </td>
13232
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013233 <td class="entry_tags">
13234 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013235 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013236 </ul>
13237 </td>
13238
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013239 </tr>
13240 <tr class="entries_header">
13241 <th class="th_details" colspan="5">Details</th>
13242 </tr>
13243 <tr class="entry_cont">
13244 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013245 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013246 </td>
13247 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013248
13249
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013250 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13251 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013252
13253
13254 <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013255 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013256 android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013257 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013258 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013259 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013260 <span class="entry_type_container">x</span>
13261
13262 <span class="entry_type_array">
13263 n x 6
13264 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013265 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013266 <div class="entry_type_notes">(leftEyeX,<wbr/> leftEyeY,<wbr/> rightEyeX,<wbr/> rightEyeY,<wbr/> mouthX,<wbr/> mouthY)</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013267
13268
13269 </td> <!-- entry_type -->
13270
13271 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013272 <p>List of landmarks for detected
13273faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013274 </td>
13275
13276 <td class="entry_units">
13277 </td>
13278
13279 <td class="entry_range">
13280 </td>
13281
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013282 <td class="entry_tags">
13283 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013284 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013285 </ul>
13286 </td>
13287
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013288 </tr>
13289 <tr class="entries_header">
13290 <th class="th_details" colspan="5">Details</th>
13291 </tr>
13292 <tr class="entry_cont">
13293 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013294 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013295 </td>
13296 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013297
13298
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013299 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13300 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013301
13302
13303 <tr class="entry" id="dynamic_android.statistics.faceRectangles">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013304 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013305 android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013306 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013307 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013308 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013309 <span class="entry_type_container">x</span>
13310
13311 <span class="entry_type_array">
13312 n x 4
13313 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013314 <span class="entry_type_visibility"> [hidden as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013315 <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 -080013316
13317
13318 </td> <!-- entry_type -->
13319
13320 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013321 <p>List of the bounding rectangles for detected
13322faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013323 </td>
13324
13325 <td class="entry_units">
13326 </td>
13327
13328 <td class="entry_range">
13329 </td>
13330
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013331 <td class="entry_tags">
13332 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013333 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013334 </ul>
13335 </td>
13336
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013337 </tr>
13338 <tr class="entries_header">
13339 <th class="th_details" colspan="5">Details</th>
13340 </tr>
13341 <tr class="entry_cont">
13342 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013343 <p>Only available if faceDetectMode != OFF</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013344 </td>
13345 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013346
13347
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013348 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13349 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013350
13351
13352 <tr class="entry" id="dynamic_android.statistics.faceScores">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013353 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013354 android.<wbr/>statistics.<wbr/>face<wbr/>Scores
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013355 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013356 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013357 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013358 <span class="entry_type_container">x</span>
13359
13360 <span class="entry_type_array">
13361 n
13362 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013363 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013364
13365
13366 </td> <!-- entry_type -->
13367
13368 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013369 <p>List of the face confidence scores for
13370detected faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013371 </td>
13372
13373 <td class="entry_units">
13374 </td>
13375
13376 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013377 <p>1-100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013378 </td>
13379
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013380 <td class="entry_tags">
13381 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013382 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013383 </ul>
13384 </td>
13385
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013386 </tr>
13387 <tr class="entries_header">
13388 <th class="th_details" colspan="5">Details</th>
13389 </tr>
13390 <tr class="entry_cont">
13391 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013392 <p>Only available if faceDetectMode != OFF.<wbr/> The value should be
13393meaningful (for example,<wbr/> setting 100 at all times is illegal).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013394 </td>
13395 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013396
13397
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013398 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13399 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013400
13401
13402 <tr class="entry" id="dynamic_android.statistics.histogram">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013403 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013404 android.<wbr/>statistics.<wbr/>histogram
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013405 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013406 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013407 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013408 <span class="entry_type_container">x</span>
13409
13410 <span class="entry_type_array">
13411 n x 3
13412 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013413 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013414 <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 -080013415
13416
13417 </td> <!-- entry_type -->
13418
13419 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013420 <p>A 3-channel histogram based on the raw
13421sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013422 </td>
13423
13424 <td class="entry_units">
13425 </td>
13426
13427 <td class="entry_range">
13428 </td>
13429
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013430 <td class="entry_tags">
13431 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013432 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013433 </ul>
13434 </td>
13435
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013436 </tr>
13437 <tr class="entries_header">
13438 <th class="th_details" colspan="5">Details</th>
13439 </tr>
13440 <tr class="entry_cont">
13441 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013442 <p>The k'th bucket (0-based) covers the input range
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013443(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 -080013444(k + 1) * w /<wbr/> N ).<wbr/> If only a monochrome sharpness map is
13445supported,<wbr/> all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013446 </td>
13447 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013448
13449
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013450 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13451 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013452
13453
13454 <tr class="entry" id="dynamic_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013455 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013456 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013457 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013458 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013459 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013460
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013461 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013462
13463 <ul class="entry_type_enum">
13464 <li>
13465 <span class="entry_type_enum_name">OFF</span>
13466 </li>
13467 <li>
13468 <span class="entry_type_enum_name">ON</span>
13469 </li>
13470 </ul>
13471
13472 </td> <!-- entry_type -->
13473
13474 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013475 <p>Operating mode for histogram
13476generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013477 </td>
13478
13479 <td class="entry_units">
13480 </td>
13481
13482 <td class="entry_range">
13483 </td>
13484
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013485 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013486 <ul class="entry_tags">
13487 <li><a href="#tag_V1">V1</a></li>
13488 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013489 </td>
13490
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013491 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013492
13493
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013494 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13495 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013496
13497
13498 <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013499 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013500 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013501 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013502 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013503 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013504 <span class="entry_type_container">x</span>
13505
13506 <span class="entry_type_array">
13507 n x m x 3
13508 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013509 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013510 <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 -080013511
13512
13513 </td> <!-- entry_type -->
13514
13515 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013516 <p>A 3-channel sharpness map,<wbr/> based on the raw
13517sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013518 </td>
13519
13520 <td class="entry_units">
13521 </td>
13522
13523 <td class="entry_range">
13524 </td>
13525
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013526 <td class="entry_tags">
13527 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013528 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013529 </ul>
13530 </td>
13531
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013532 </tr>
13533 <tr class="entries_header">
13534 <th class="th_details" colspan="5">Details</th>
13535 </tr>
13536 <tr class="entry_cont">
13537 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013538 <p>If only a monochrome sharpness map is supported,<wbr/>
13539all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013540 </td>
13541 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013542
13543
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013544 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13545 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013546
13547
13548 <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013549 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013550 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013551 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013552 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013553 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013554
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013555 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013556
13557 <ul class="entry_type_enum">
13558 <li>
13559 <span class="entry_type_enum_name">OFF</span>
13560 </li>
13561 <li>
13562 <span class="entry_type_enum_name">ON</span>
13563 </li>
13564 </ul>
13565
13566 </td> <!-- entry_type -->
13567
13568 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013569 <p>Operating mode for sharpness map
13570generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013571 </td>
13572
13573 <td class="entry_units">
13574 </td>
13575
13576 <td class="entry_range">
13577 </td>
13578
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013579 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013580 <ul class="entry_tags">
13581 <li><a href="#tag_V1">V1</a></li>
13582 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013583 </td>
13584
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013585 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013586
13587
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013588 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13589 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013590
Zhijun He69fc0ea2013-07-17 09:42:58 -070013591
13592 <tr class="entry" id="dynamic_android.statistics.lensShadingMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013593 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013594 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013595 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013596 <td class="entry_type">
13597 <span class="entry_type_name">float</span>
13598 <span class="entry_type_container">x</span>
13599
13600 <span class="entry_type_array">
13601 4 x n x m
13602 </span>
13603 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013604 <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 -070013605
13606
13607 </td> <!-- entry_type -->
13608
13609 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013610 <p>The shading map is a low-resolution floating-point map
13611that lists the coefficients used to correct for vignetting,<wbr/> for each
13612Bayer color channel.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013613 </td>
13614
13615 <td class="entry_units">
13616 </td>
13617
13618 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013619 <p>Each gain factor is &gt;= 1</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013620 </td>
13621
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013622 <td class="entry_tags">
13623 </td>
13624
13625 </tr>
13626 <tr class="entries_header">
13627 <th class="th_details" colspan="5">Details</th>
13628 </tr>
13629 <tr class="entry_cont">
13630 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013631 <p>The least shaded section of the image should have a gain factor
13632of 1; all other sections should have gains above 1.<wbr/></p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013633<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 -080013634must take into account the colorCorrection settings.<wbr/></p>
13635<p>The shading map is for the entire active pixel array,<wbr/> and is not
13636affected by the crop region specified in the request.<wbr/> Each shading map
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013637entry is the value of the shading compensation map over a specific
Igor Murashkin0b080452013-12-27 15:30:25 -080013638pixel on the sensor.<wbr/> Specifically,<wbr/> with a (N x M) resolution shading
13639map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
13640(x,<wbr/>y) ϵ (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
13641pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
13642The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
13643<p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
13644channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
13645The shading map is stored in a fully interleaved format,<wbr/> and its size
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013646is 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 -080013647<p>The shading map should have on the order of 30-40 rows and columns,<wbr/>
13648and must be smaller than 64x64.<wbr/></p>
13649<p>As an example,<wbr/> given a very small map defined as:</p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013650<pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]
13651<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> =
Igor Murashkin0b080452013-12-27 15:30:25 -080013652[ 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/>
13653 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/>
13654 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/>
13655 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/>
13656 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/>
13657 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 -080013658</code></pre>
13659<p>The low-resolution scaling map images for each channel are
13660(displayed using nearest-neighbor interpolation):</p>
13661<p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
13662<img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
13663<img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
13664<img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013665<p>As a visualization only,<wbr/> inverting the full-color map to recover an
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013666image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013667<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 -070013668 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013669 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013670
13671
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013672 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13673 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013674
13675
13676 <tr class="entry" id="dynamic_android.statistics.predictedColorGains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013677 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013678 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013679 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013680 <td class="entry_type">
13681 <span class="entry_type_name">float</span>
13682 <span class="entry_type_container">x</span>
13683
13684 <span class="entry_type_array">
13685 4
13686 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013687 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013688 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013689
13690
13691 </td> <!-- entry_type -->
13692
13693 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013694 <p>The best-fit color channel gains calculated
13695by the HAL's statistics units for the current output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013696 </td>
13697
13698 <td class="entry_units">
13699 </td>
13700
13701 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013702 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013703 </td>
13704
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013705 <td class="entry_tags">
13706 </td>
13707
13708 </tr>
13709 <tr class="entries_header">
13710 <th class="th_details" colspan="5">Details</th>
13711 </tr>
13712 <tr class="entry_cont">
13713 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013714 <p>This may be different than the gains used for this frame,<wbr/>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013715since statistics processing on data from a new frame
13716typically completes after the transform has already been
Igor Murashkin0b080452013-12-27 15:30:25 -080013717applied to that frame.<wbr/></p>
13718<p>The 4 channel gains are defined in Bayer domain,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013719see <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 -080013720<p>This value should always be calculated by the AWB block,<wbr/>
13721regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></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.predictedColorTransform">
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/>Transform
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">rational</span>
13736 <span class="entry_type_container">x</span>
13737
13738 <span class="entry_type_array">
13739 3 x 3
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">3x3 rational matrix in row-major order</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 transform matrix estimate
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013749calculated by the HAL's statistics units for the current
Igor Murashkin0b080452013-12-27 15:30:25 -080013750output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013751 </td>
13752
13753 <td class="entry_units">
13754 </td>
13755
13756 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013757 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013758 </td>
13759
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013760 <td class="entry_tags">
13761 </td>
13762
13763 </tr>
13764 <tr class="entries_header">
13765 <th class="th_details" colspan="5">Details</th>
13766 </tr>
13767 <tr class="entry_cont">
13768 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013769 <p>The HAL must provide the estimate from its
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013770statistics unit on the white balance transforms to use
Igor Murashkin0b080452013-12-27 15:30:25 -080013771for the next frame.<wbr/> These are the values the HAL believes
13772are the best fit for the current output frame.<wbr/> This may
13773be different than the transform used for this frame,<wbr/> since
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013774statistics processing on data from a new frame typically
13775completes after the transform has already been applied to
Igor Murashkin0b080452013-12-27 15:30:25 -080013776that frame.<wbr/></p>
13777<p>These estimates must be provided for all frames,<wbr/> even if
13778capture settings and color transforms are set by the application.<wbr/></p>
13779<p>This value should always be calculated by the AWB block,<wbr/>
13780regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013781 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013782 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013783
13784
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013785 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13786 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013787
13788
13789 <tr class="entry" id="dynamic_android.statistics.sceneFlicker">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013790 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013791 android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013792 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013793 <td class="entry_type">
13794 <span class="entry_type_name entry_type_name_enum">byte</span>
13795
13796 <span class="entry_type_visibility"> [public]</span>
13797
13798 <ul class="entry_type_enum">
13799 <li>
13800 <span class="entry_type_enum_name">NONE</span>
13801 </li>
13802 <li>
13803 <span class="entry_type_enum_name">50HZ</span>
13804 </li>
13805 <li>
13806 <span class="entry_type_enum_name">60HZ</span>
13807 </li>
13808 </ul>
13809
13810 </td> <!-- entry_type -->
13811
13812 <td class="entry_description">
Zhijun Heb8512c52014-02-03 11:46:58 -080013813 <p>The camera device estimated scene illumination lighting
13814frequency.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013815 </td>
13816
13817 <td class="entry_units">
13818 </td>
13819
13820 <td class="entry_range">
13821 </td>
13822
Zhijun He69fc0ea2013-07-17 09:42:58 -070013823 <td class="entry_tags">
13824 </td>
13825
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013826 </tr>
13827 <tr class="entries_header">
13828 <th class="th_details" colspan="5">Details</th>
13829 </tr>
13830 <tr class="entry_cont">
13831 <td class="entry_details" colspan="5">
Zhijun Heb8512c52014-02-03 11:46:58 -080013832 <p>Many light sources,<wbr/> such as most fluorescent lights,<wbr/> flicker at a rate
13833that depends on the local utility power standards.<wbr/> This flicker must be
13834accounted for by auto-exposure routines to avoid artifacts in captured images.<wbr/>
13835The camera device uses this entry to tell the application what the scene
13836illuminant frequency is.<wbr/></p>
13837<p>When manual exposure control is enabled
13838(<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/>
13839the <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> doesn't do the antibanding,<wbr/> and the
13840application can ensure it selects exposure times that do not cause banding
13841issues by looking into this metadata field.<wbr/> See android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
13842for more details.<wbr/></p>
13843<p>Report NONE if there doesn't appear to be flickering illumination.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013844 </td>
13845 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013846
13847
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013848 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13849 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013850
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013851
13852
13853 <!-- end of kind -->
13854 </tbody>
13855
13856 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013857 <tr><td colspan="6" id="section_tonemap" class="section">tonemap</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013858
13859
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013860 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013861
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013862 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013863 <tr>
13864 <th class="th_name">Property Name</th>
13865 <th class="th_type">Type</th>
13866 <th class="th_description">Description</th>
13867 <th class="th_units">Units</th>
13868 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013869 <th class="th_tags">Tags</th>
13870 </tr>
13871 </thead>
13872
13873 <tbody>
13874
13875
13876
13877
13878
13879
13880
13881
13882
13883
13884 <tr class="entry" id="controls_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013885 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013886 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013887 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013888 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080013889 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070013890 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013891
Zhijun He704d1282013-08-19 15:26:33 -070013892 <span class="entry_type_array">
13893 n x 2
13894 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013895 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013896 <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 -080013897
13898
13899 </td> <!-- entry_type -->
13900
13901 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013902 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
13903channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
13904CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013905 </td>
13906
13907 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080013908 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013909 </td>
13910
13911 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013912 <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 -080013913 </td>
13914
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013915 <td class="entry_tags">
13916 </td>
13917
13918 </tr>
13919 <tr class="entries_header">
13920 <th class="th_details" colspan="5">Details</th>
13921 </tr>
13922 <tr class="entry_cont">
13923 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013924 <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 -080013925 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013926 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013927
13928
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013929 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13930 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013931
13932
13933 <tr class="entry" id="controls_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013934 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013935 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013936 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013937 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080013938 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070013939 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013940
Zhijun He704d1282013-08-19 15:26:33 -070013941 <span class="entry_type_array">
13942 n x 2
13943 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013944 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013945 <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 -080013946
13947
13948 </td> <!-- entry_type -->
13949
13950 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013951 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
13952channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
13953CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013954 </td>
13955
13956 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080013957 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013958 </td>
13959
13960 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013961 <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 -080013962 </td>
13963
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013964 <td class="entry_tags">
13965 </td>
13966
13967 </tr>
13968 <tr class="entries_header">
13969 <th class="th_details" colspan="5">Details</th>
13970 </tr>
13971 <tr class="entry_cont">
13972 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013973 <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 -080013974 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013975 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013976
13977
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013978 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13979 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013980
13981
13982 <tr class="entry" id="controls_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013983 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013984 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013985 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013986 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013987 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013988 <span class="entry_type_container">x</span>
13989
13990 <span class="entry_type_array">
13991 n x 2
13992 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013993 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013994 <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 -080013995
13996
13997 </td> <!-- entry_type -->
13998
13999 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014000 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14001channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14002CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014003 </td>
14004
14005 <td class="entry_units">
14006 </td>
14007
14008 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014009 <p>0-1 on both input and output coordinates,<wbr/> normalized
14010as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014011 </td>
14012
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014013 <td class="entry_tags">
14014 <ul class="entry_tags">
14015 <li><a href="#tag_DNG">DNG</a></li>
14016 </ul>
14017 </td>
14018
14019 </tr>
14020 <tr class="entries_header">
14021 <th class="th_details" colspan="5">Details</th>
14022 </tr>
14023 <tr class="entry_cont">
14024 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014025 <p>Each channel's curve is defined by an array of control points:</p>
14026<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14027 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
140282 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14029<p>These are sorted in order of increasing <code>Pin</code>; it is always
14030guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14031define a complete mapping.<wbr/> For input values between control points,<wbr/>
14032the camera device must linearly interpolate between the control
14033points.<wbr/></p>
14034<p>Each curve can have an independent number of points,<wbr/> and the number
14035of points can be less than max (that is,<wbr/> the request doesn't have to
14036always provide a curve with number of points equivalent to
14037<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14038<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14039only specify the red channel and the precision is limited to 4
14040digits,<wbr/> for conciseness.<wbr/></p>
14041<p>Linear mapping:</p>
14042<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 ]
14043</code></pre>
14044<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14045<p>Invert mapping:</p>
14046<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 ]
14047</code></pre>
14048<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14049<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14050<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14051 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/>
14052 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/>
14053 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/>
14054 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 ]
14055</code></pre>
14056<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14057<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14058<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14059 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/>
14060 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/>
14061 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/>
14062 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 ]
14063</code></pre>
14064<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014065 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014066 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014067
Igor Murashkin94e06c42014-01-13 16:51:17 -080014068 <tr class="entries_header">
14069 <th class="th_details" colspan="5">HAL Implementation Details</th>
14070 </tr>
14071 <tr class="entry_cont">
14072 <td class="entry_details" colspan="5">
14073 <p>For good quality of mapping,<wbr/> at least 128 control points are
14074preferred.<wbr/></p>
14075<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14076control points used as are available.<wbr/></p>
14077 </td>
14078 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014079
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014080 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14081 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014082
14083
14084 <tr class="entry" id="controls_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014085 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014086 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014087 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014088 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014089 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014090
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014091 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014092
14093 <ul class="entry_type_enum">
14094 <li>
14095 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014096 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014097android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14098<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14099for applying the tonemapping curve specified by
14100<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
14101<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14102<p>Must not slow down frame rate relative to raw
14103sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014104 </li>
14105 <li>
14106 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014107 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14108<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014109 </li>
14110 <li>
14111 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014112 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14113<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014114 </li>
14115 </ul>
14116
14117 </td> <!-- entry_type -->
14118
14119 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014120 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014121 </td>
14122
14123 <td class="entry_units">
14124 </td>
14125
14126 <td class="entry_range">
14127 </td>
14128
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014129 <td class="entry_tags">
14130 </td>
14131
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014132 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014133 <tr class="entries_header">
14134 <th class="th_details" colspan="5">Details</th>
14135 </tr>
14136 <tr class="entry_cont">
14137 <td class="entry_details" colspan="5">
14138 <p>When switching to an application-defined contrast curve by setting
14139<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14140per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14141mapping from input high-bit-depth pixel value to the output
14142low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14143and output may change depending on the camera pipeline,<wbr/> the values
14144are specified by normalized floating-point numbers.<wbr/></p>
14145<p>More-complex color mapping operations such as 3D color look-up
14146tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14147transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14148CONTRAST_<wbr/>CURVE.<wbr/></p>
14149<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14150emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14151<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/>
14152These values are always available,<wbr/> and as close as possible to the
14153actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14154<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14155provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14156roughly the same.<wbr/></p>
14157 </td>
14158 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014159
14160
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014161 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14162 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014163
14164
14165
14166 <!-- end of kind -->
14167 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014168 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014169
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014170 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014171 <tr>
14172 <th class="th_name">Property Name</th>
14173 <th class="th_type">Type</th>
14174 <th class="th_description">Description</th>
14175 <th class="th_units">Units</th>
14176 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014177 <th class="th_tags">Tags</th>
14178 </tr>
14179 </thead>
14180
14181 <tbody>
14182
14183
14184
14185
14186
14187
14188
14189
14190
14191
14192 <tr class="entry" id="static_android.tonemap.maxCurvePoints">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014193 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014194 android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014195 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014196 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014197 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014198
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014199 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014200
14201
14202 </td> <!-- entry_type -->
14203
14204 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014205 <p>Maximum number of supported points in the
Igor Murashkin94e06c42014-01-13 16:51:17 -080014206tonemap curve that can be used for <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/> or
14207<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 -080014208 </td>
14209
14210 <td class="entry_units">
14211 </td>
14212
14213 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014214 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014215 </td>
14216
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014217 <td class="entry_tags">
14218 </td>
14219
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014220 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014221 <tr class="entries_header">
14222 <th class="th_details" colspan="5">Details</th>
14223 </tr>
14224 <tr class="entry_cont">
14225 <td class="entry_details" colspan="5">
14226 <p>If the actual number of points provided by the application (in
14227android.<wbr/>tonemap.<wbr/>curve*) is less than max,<wbr/> the camera device will
14228resample the curve to its internal representation,<wbr/> using linear
14229interpolation.<wbr/></p>
14230<p>The output curves in the result metadata may have a different number
14231of points than the input curves,<wbr/> and will represent the actual
14232hardware curves used as closely as possible when linearly interpolated.<wbr/></p>
14233 </td>
14234 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014235
Igor Murashkin94e06c42014-01-13 16:51:17 -080014236 <tr class="entries_header">
14237 <th class="th_details" colspan="5">HAL Implementation Details</th>
14238 </tr>
14239 <tr class="entry_cont">
14240 <td class="entry_details" colspan="5">
14241 <p>This value must be at least 64.<wbr/> This should be at least 128.<wbr/></p>
14242 </td>
14243 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014244
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014245 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14246 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014247
14248
14249
14250 <!-- end of kind -->
14251 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014252 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014253
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014254 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014255 <tr>
14256 <th class="th_name">Property Name</th>
14257 <th class="th_type">Type</th>
14258 <th class="th_description">Description</th>
14259 <th class="th_units">Units</th>
14260 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014261 <th class="th_tags">Tags</th>
14262 </tr>
14263 </thead>
14264
14265 <tbody>
14266
14267
14268
14269
14270
14271
14272
14273
14274
14275
14276 <tr class="entry" id="dynamic_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014277 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014278 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014279 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014280 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014281 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014282 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014283
Zhijun He704d1282013-08-19 15:26:33 -070014284 <span class="entry_type_array">
14285 n x 2
14286 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014287 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014288 <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 -080014289
14290
14291 </td> <!-- entry_type -->
14292
14293 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014294 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
14295channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14296CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014297 </td>
14298
14299 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014300 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014301 </td>
14302
14303 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014304 <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 -080014305 </td>
14306
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014307 <td class="entry_tags">
14308 </td>
14309
14310 </tr>
14311 <tr class="entries_header">
14312 <th class="th_details" colspan="5">Details</th>
14313 </tr>
14314 <tr class="entry_cont">
14315 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014316 <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 -080014317 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014318 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014319
14320
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014321 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14322 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014323
14324
14325 <tr class="entry" id="dynamic_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014326 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014327 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014328 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014329 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014330 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014331 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014332
Zhijun He704d1282013-08-19 15:26:33 -070014333 <span class="entry_type_array">
14334 n x 2
14335 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014336 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014337 <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 -080014338
14339
14340 </td> <!-- entry_type -->
14341
14342 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014343 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14344channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14345CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014346 </td>
14347
14348 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014349 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014350 </td>
14351
14352 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014353 <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 -080014354 </td>
14355
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014356 <td class="entry_tags">
14357 </td>
14358
14359 </tr>
14360 <tr class="entries_header">
14361 <th class="th_details" colspan="5">Details</th>
14362 </tr>
14363 <tr class="entry_cont">
14364 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014365 <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 -080014366 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014367 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014368
14369
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014370 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14371 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014372
14373
14374 <tr class="entry" id="dynamic_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014375 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014376 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014377 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014378 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014379 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014380 <span class="entry_type_container">x</span>
14381
14382 <span class="entry_type_array">
14383 n x 2
14384 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014385 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014386 <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 -080014387
14388
14389 </td> <!-- entry_type -->
14390
14391 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014392 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14393channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14394CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014395 </td>
14396
14397 <td class="entry_units">
14398 </td>
14399
14400 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014401 <p>0-1 on both input and output coordinates,<wbr/> normalized
14402as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014403 </td>
14404
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014405 <td class="entry_tags">
14406 <ul class="entry_tags">
14407 <li><a href="#tag_DNG">DNG</a></li>
14408 </ul>
14409 </td>
14410
14411 </tr>
14412 <tr class="entries_header">
14413 <th class="th_details" colspan="5">Details</th>
14414 </tr>
14415 <tr class="entry_cont">
14416 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014417 <p>Each channel's curve is defined by an array of control points:</p>
14418<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14419 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
144202 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14421<p>These are sorted in order of increasing <code>Pin</code>; it is always
14422guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14423define a complete mapping.<wbr/> For input values between control points,<wbr/>
14424the camera device must linearly interpolate between the control
14425points.<wbr/></p>
14426<p>Each curve can have an independent number of points,<wbr/> and the number
14427of points can be less than max (that is,<wbr/> the request doesn't have to
14428always provide a curve with number of points equivalent to
14429<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14430<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14431only specify the red channel and the precision is limited to 4
14432digits,<wbr/> for conciseness.<wbr/></p>
14433<p>Linear mapping:</p>
14434<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 ]
14435</code></pre>
14436<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14437<p>Invert mapping:</p>
14438<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 ]
14439</code></pre>
14440<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14441<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14442<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14443 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/>
14444 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/>
14445 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/>
14446 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 ]
14447</code></pre>
14448<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14449<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14450<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14451 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/>
14452 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/>
14453 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/>
14454 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 ]
14455</code></pre>
14456<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014457 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014458 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014459
Igor Murashkin94e06c42014-01-13 16:51:17 -080014460 <tr class="entries_header">
14461 <th class="th_details" colspan="5">HAL Implementation Details</th>
14462 </tr>
14463 <tr class="entry_cont">
14464 <td class="entry_details" colspan="5">
14465 <p>For good quality of mapping,<wbr/> at least 128 control points are
14466preferred.<wbr/></p>
14467<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14468control points used as are available.<wbr/></p>
14469 </td>
14470 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014471
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014472 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14473 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014474
14475
14476 <tr class="entry" id="dynamic_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014477 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014478 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014479 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014480 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014481 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014482
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014483 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014484
14485 <ul class="entry_type_enum">
14486 <li>
14487 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014488 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014489android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14490<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14491for applying the tonemapping curve specified by
14492<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
14493<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14494<p>Must not slow down frame rate relative to raw
14495sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014496 </li>
14497 <li>
14498 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014499 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14500<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014501 </li>
14502 <li>
14503 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014504 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14505<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014506 </li>
14507 </ul>
14508
14509 </td> <!-- entry_type -->
14510
14511 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014512 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014513 </td>
14514
14515 <td class="entry_units">
14516 </td>
14517
14518 <td class="entry_range">
14519 </td>
14520
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014521 <td class="entry_tags">
14522 </td>
14523
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014524 </tr>
Igor Murashkin595f45b2014-01-17 17:27:15 -080014525 <tr class="entries_header">
14526 <th class="th_details" colspan="5">Details</th>
14527 </tr>
14528 <tr class="entry_cont">
14529 <td class="entry_details" colspan="5">
14530 <p>When switching to an application-defined contrast curve by setting
14531<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14532per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14533mapping from input high-bit-depth pixel value to the output
14534low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14535and output may change depending on the camera pipeline,<wbr/> the values
14536are specified by normalized floating-point numbers.<wbr/></p>
14537<p>More-complex color mapping operations such as 3D color look-up
14538tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14539transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14540CONTRAST_<wbr/>CURVE.<wbr/></p>
14541<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14542emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14543<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/>
14544These values are always available,<wbr/> and as close as possible to the
14545actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14546<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14547provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14548roughly the same.<wbr/></p>
14549 </td>
14550 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014551
14552
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014553 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14554 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014555
14556
14557
14558 <!-- end of kind -->
14559 </tbody>
14560
14561 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014562 <tr><td colspan="6" id="section_led" class="section">led</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014563
14564
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014565 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014566
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014567 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014568 <tr>
14569 <th class="th_name">Property Name</th>
14570 <th class="th_type">Type</th>
14571 <th class="th_description">Description</th>
14572 <th class="th_units">Units</th>
14573 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014574 <th class="th_tags">Tags</th>
14575 </tr>
14576 </thead>
14577
14578 <tbody>
14579
14580
14581
14582
14583
14584
14585
14586
14587
14588
14589 <tr class="entry" id="controls_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014590 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014591 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014592 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014593 <td class="entry_type">
14594 <span class="entry_type_name entry_type_name_enum">byte</span>
14595
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014596 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014597
14598 <ul class="entry_type_enum">
14599 <li>
14600 <span class="entry_type_enum_name">OFF</span>
14601 </li>
14602 <li>
14603 <span class="entry_type_enum_name">ON</span>
14604 </li>
14605 </ul>
14606
14607 </td> <!-- entry_type -->
14608
14609 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014610 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014611that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014612Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014613disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014614any untrusted applications.<wbr/></p>
14615<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14616transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14617data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014618<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014619doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014620 </td>
14621
14622 <td class="entry_units">
14623 </td>
14624
14625 <td class="entry_range">
14626 </td>
14627
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014628 <td class="entry_tags">
14629 </td>
14630
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014631 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014632
14633
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014634 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14635 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014636
14637
14638
14639 <!-- end of kind -->
14640 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014641 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014642
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014643 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014644 <tr>
14645 <th class="th_name">Property Name</th>
14646 <th class="th_type">Type</th>
14647 <th class="th_description">Description</th>
14648 <th class="th_units">Units</th>
14649 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014650 <th class="th_tags">Tags</th>
14651 </tr>
14652 </thead>
14653
14654 <tbody>
14655
14656
14657
14658
14659
14660
14661
14662
14663
14664
14665 <tr class="entry" id="dynamic_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014666 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014667 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014668 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014669 <td class="entry_type">
14670 <span class="entry_type_name entry_type_name_enum">byte</span>
14671
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014672 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014673
14674 <ul class="entry_type_enum">
14675 <li>
14676 <span class="entry_type_enum_name">OFF</span>
14677 </li>
14678 <li>
14679 <span class="entry_type_enum_name">ON</span>
14680 </li>
14681 </ul>
14682
14683 </td> <!-- entry_type -->
14684
14685 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014686 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014687that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014688Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014689disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014690any untrusted applications.<wbr/></p>
14691<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14692transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14693data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014694<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014695doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014696 </td>
14697
14698 <td class="entry_units">
14699 </td>
14700
14701 <td class="entry_range">
14702 </td>
14703
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014704 <td class="entry_tags">
14705 </td>
14706
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014707 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014708
14709
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014710 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14711 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014712
14713
14714
14715 <!-- end of kind -->
14716 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014717 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014718
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014719 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014720 <tr>
14721 <th class="th_name">Property Name</th>
14722 <th class="th_type">Type</th>
14723 <th class="th_description">Description</th>
14724 <th class="th_units">Units</th>
14725 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014726 <th class="th_tags">Tags</th>
14727 </tr>
14728 </thead>
14729
14730 <tbody>
14731
14732
14733
14734
14735
14736
14737
14738
14739
14740
14741 <tr class="entry" id="static_android.led.availableLeds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014742 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014743 android.<wbr/>led.<wbr/>available<wbr/>Leds
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014744 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014745 <td class="entry_type">
14746 <span class="entry_type_name entry_type_name_enum">byte</span>
14747 <span class="entry_type_container">x</span>
14748
14749 <span class="entry_type_array">
14750 n
14751 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014752 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014753
14754 <ul class="entry_type_enum">
14755 <li>
14756 <span class="entry_type_enum_name">TRANSMIT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014757 <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 -070014758 </li>
14759 </ul>
14760
14761 </td> <!-- entry_type -->
14762
14763 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014764 <p>A list of camera LEDs that are available on this system.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014765 </td>
14766
14767 <td class="entry_units">
14768 </td>
14769
14770 <td class="entry_range">
14771 </td>
14772
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014773 <td class="entry_tags">
14774 </td>
14775
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014776 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014777
14778
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014779 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14780 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014781
14782
14783
14784 <!-- end of kind -->
14785 </tbody>
14786
14787 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014788 <tr><td colspan="6" id="section_info" class="section">info</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014789
14790
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014791 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014792
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014793 <thead class="entries_header">
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014794 <tr>
14795 <th class="th_name">Property Name</th>
14796 <th class="th_type">Type</th>
14797 <th class="th_description">Description</th>
14798 <th class="th_units">Units</th>
14799 <th class="th_range">Range</th>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014800 <th class="th_tags">Tags</th>
14801 </tr>
14802 </thead>
14803
14804 <tbody>
14805
14806
14807
14808
14809
14810
14811
14812
14813
14814
14815 <tr class="entry" id="static_android.info.supportedHardwareLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014816 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014817 android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014818 </td>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014819 <td class="entry_type">
14820 <span class="entry_type_name entry_type_name_enum">byte</span>
14821
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014822 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014823
14824 <ul class="entry_type_enum">
14825 <li>
14826 <span class="entry_type_enum_name">LIMITED</span>
14827 </li>
14828 <li>
14829 <span class="entry_type_enum_name">FULL</span>
14830 </li>
14831 </ul>
14832
14833 </td> <!-- entry_type -->
14834
14835 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014836 <p>The camera 3 HAL device can implement one of two possible
14837operational modes; limited and full.<wbr/> Full support is
14838expected from new higher-end devices.<wbr/> Limited mode has
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014839hardware requirements roughly in line with those for a
Igor Murashkin0b080452013-12-27 15:30:25 -080014840camera HAL device v1 implementation,<wbr/> and is expected from
14841older or inexpensive devices.<wbr/> Full is a strict superset of
14842limited,<wbr/> and they share the same essential operational flow.<wbr/></p>
14843<p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014844 </td>
14845
14846 <td class="entry_units">
14847 </td>
14848
14849 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014850 <p>Optional.<wbr/> Default value is LIMITED.<wbr/></p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014851 </td>
14852
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014853 <td class="entry_tags">
14854 </td>
14855
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014856 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014857
14858
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014859 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14860 <!-- end of entry -->
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014861
14862
14863
14864 <!-- end of kind -->
14865 </tbody>
14866
14867 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014868 <tr><td colspan="6" id="section_blackLevel" class="section">blackLevel</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014869
14870
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014871 <tr><td colspan="6" class="kind">controls</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014872
14873 <thead class="entries_header">
14874 <tr>
14875 <th class="th_name">Property Name</th>
14876 <th class="th_type">Type</th>
14877 <th class="th_description">Description</th>
14878 <th class="th_units">Units</th>
14879 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014880 <th class="th_tags">Tags</th>
14881 </tr>
14882 </thead>
14883
14884 <tbody>
14885
14886
14887
14888
14889
14890
14891
14892
14893
14894
14895 <tr class="entry" id="controls_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014896 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014897 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014898 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014899 <td class="entry_type">
14900 <span class="entry_type_name entry_type_name_enum">byte</span>
14901
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014902 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014903
14904 <ul class="entry_type_enum">
14905 <li>
14906 <span class="entry_type_enum_name">OFF</span>
14907 </li>
14908 <li>
14909 <span class="entry_type_enum_name">ON</span>
14910 </li>
14911 </ul>
14912
14913 </td> <!-- entry_type -->
14914
14915 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014916 <p>Whether black-level compensation is locked
14917to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014918 </td>
14919
14920 <td class="entry_units">
14921 </td>
14922
14923 <td class="entry_range">
14924 </td>
14925
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014926 <td class="entry_tags">
14927 <ul class="entry_tags">
14928 <li><a href="#tag_HAL2">HAL2</a></li>
14929 </ul>
14930 </td>
14931
14932 </tr>
14933 <tr class="entries_header">
14934 <th class="th_details" colspan="5">Details</th>
14935 </tr>
14936 <tr class="entry_cont">
14937 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014938 <p>When set to ON,<wbr/> the values used for black-level
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014939compensation will not change until the lock is set to
Igor Murashkin0b080452013-12-27 15:30:25 -080014940OFF.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014941<p>Since changes to certain capture parameters (such as
14942exposure time) may require resetting of black level
Igor Murashkin0b080452013-12-27 15:30:25 -080014943compensation,<wbr/> the camera device must report whether setting
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014944the black level lock was successful in the output result
Igor Murashkin0b080452013-12-27 15:30:25 -080014945metadata.<wbr/></p>
14946<p>For example,<wbr/> if a sequence of requests is as follows:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014947<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080014948<li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
14949<li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14950<li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14951<li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li>
14952<li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
14953<li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014954</ul>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014955<p>And the exposure change in Request 4 requires the camera
Igor Murashkin0b080452013-12-27 15:30:25 -080014956device to reset the black level offsets,<wbr/> then the output
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014957result metadata is expected to be:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014958<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080014959<li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
14960<li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14961<li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14962<li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li>
14963<li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
14964<li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014965</ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080014966<p>This indicates to the application that on frame 4,<wbr/> black
14967levels were reset due to exposure value changes,<wbr/> and pixel
14968values may not be consistent across captures.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014969<p>The camera device will maintain the lock to the extent
Igor Murashkin0b080452013-12-27 15:30:25 -080014970possible,<wbr/> only overriding the lock to OFF when changes to
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014971other request parameters require a black level recalculation
Igor Murashkin0b080452013-12-27 15:30:25 -080014972or reset.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014973 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014974 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014975
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014976 <tr class="entries_header">
14977 <th class="th_details" colspan="5">HAL Implementation Details</th>
14978 </tr>
14979 <tr class="entry_cont">
14980 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014981 <p>If for some reason black level locking is no longer possible
14982(for example,<wbr/> the analog gain has changed,<wbr/> which forces
14983black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014984override this request (and it must report 'OFF' when this
14985does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080014986possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014987 </td>
14988 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014989
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014990 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14991 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070014992
14993
14994
14995 <!-- end of kind -->
14996 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014997 <tr><td colspan="6" class="kind">dynamic</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014998
14999 <thead class="entries_header">
15000 <tr>
15001 <th class="th_name">Property Name</th>
15002 <th class="th_type">Type</th>
15003 <th class="th_description">Description</th>
15004 <th class="th_units">Units</th>
15005 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015006 <th class="th_tags">Tags</th>
15007 </tr>
15008 </thead>
15009
15010 <tbody>
15011
15012
15013
15014
15015
15016
15017
15018
15019
15020
15021 <tr class="entry" id="dynamic_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015022 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015023 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015024 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015025 <td class="entry_type">
15026 <span class="entry_type_name entry_type_name_enum">byte</span>
15027
Igor Murashkinb8dc8812013-07-17 16:29:34 -070015028 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015029
15030 <ul class="entry_type_enum">
15031 <li>
15032 <span class="entry_type_enum_name">OFF</span>
15033 </li>
15034 <li>
15035 <span class="entry_type_enum_name">ON</span>
15036 </li>
15037 </ul>
15038
15039 </td> <!-- entry_type -->
15040
15041 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015042 <p>Whether black-level compensation is locked
15043to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015044 </td>
15045
15046 <td class="entry_units">
15047 </td>
15048
15049 <td class="entry_range">
15050 </td>
15051
Zhijun He69fc0ea2013-07-17 09:42:58 -070015052 <td class="entry_tags">
15053 <ul class="entry_tags">
15054 <li><a href="#tag_HAL2">HAL2</a></li>
15055 </ul>
15056 </td>
15057
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015058 </tr>
15059 <tr class="entries_header">
15060 <th class="th_details" colspan="5">Details</th>
15061 </tr>
15062 <tr class="entry_cont">
15063 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015064 <p>Whether the black level offset was locked for this frame.<wbr/> Should be
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080015065ON 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 -080015066a change in other capture settings forced the camera device to
Igor Murashkin0b080452013-12-27 15:30:25 -080015067perform a black level reset.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015068 </td>
15069 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015070
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015071 <tr class="entries_header">
15072 <th class="th_details" colspan="5">HAL Implementation Details</th>
15073 </tr>
15074 <tr class="entry_cont">
15075 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015076 <p>If for some reason black level locking is no longer possible
15077(for example,<wbr/> the analog gain has changed,<wbr/> which forces
15078black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015079override this request (and it must report 'OFF' when this
15080does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080015081possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015082 </td>
15083 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015084
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015085 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15086 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070015087
15088
15089
15090 <!-- end of kind -->
15091 </tbody>
15092
15093 <!-- end of section -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015094 <tr><td colspan="6" id="section_sync" class="section">sync</td></tr>
15095
15096
15097 <tr><td colspan="6" class="kind">dynamic</td></tr>
15098
15099 <thead class="entries_header">
15100 <tr>
15101 <th class="th_name">Property Name</th>
15102 <th class="th_type">Type</th>
15103 <th class="th_description">Description</th>
15104 <th class="th_units">Units</th>
15105 <th class="th_range">Range</th>
15106 <th class="th_tags">Tags</th>
15107 </tr>
15108 </thead>
15109
15110 <tbody>
15111
15112
15113
15114
15115
15116
15117
15118
15119
15120
15121 <tr class="entry" id="dynamic_android.sync.frameNumber">
15122 <td class="entry_name" rowspan="5">
15123 android.<wbr/>sync.<wbr/>frame<wbr/>Number
15124 </td>
15125 <td class="entry_type">
15126 <span class="entry_type_name entry_type_name_enum">int64</span>
15127
15128 <span class="entry_type_visibility"> [hidden]</span>
15129
15130 <ul class="entry_type_enum">
15131 <li>
15132 <span class="entry_type_enum_name">CONVERGING</span>
15133 <span class="entry_type_enum_value">-1</span>
15134 <span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/>
15135Synchronization is in progress,<wbr/> and reading metadata from this
15136result may include a mix of data that have taken effect since the
15137last synchronization time.<wbr/></p>
15138<p>In some future result,<wbr/> within <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> frames,<wbr/>
15139this value will update to the actual frame number frame number
15140the result is guaranteed to be synchronized to (as long as the
15141request settings remain constant).<wbr/></p></span>
15142 </li>
15143 <li>
15144 <span class="entry_type_enum_name">UNKNOWN</span>
15145 <span class="entry_type_enum_value">-2</span>
15146 <span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/> The
15147result may have already converged,<wbr/> or it may be in progress.<wbr/>
15148Reading from this result may include some mix of settings from
15149past requests.<wbr/></p>
15150<p>After a settings change,<wbr/> the new settings will eventually all
15151take effect for the output buffers and results.<wbr/> However,<wbr/> this
15152value will not change when that happens.<wbr/> Altering settings
15153rapidly may provide outcomes using mixes of settings from recent
15154requests.<wbr/></p>
15155<p>This value is intended primarily for backwards compatibility with
15156the older camera implementations (for android.<wbr/>hardware.<wbr/>Camera).<wbr/></p></span>
15157 </li>
15158 </ul>
15159
15160 </td> <!-- entry_type -->
15161
15162 <td class="entry_description">
15163 <p>The frame number corresponding to the last request
15164with which the output result (metadata + buffers) has been fully
15165synchronized.<wbr/></p>
15166 </td>
15167
15168 <td class="entry_units">
15169 </td>
15170
15171 <td class="entry_range">
15172 <p>Either a non-negative value corresponding to a
15173<code>frame_<wbr/>number</code>,<wbr/> or one of the two enums (CONVERGING /<wbr/> UNKNOWN).<wbr/></p>
15174 </td>
15175
15176 <td class="entry_tags">
15177 <ul class="entry_tags">
15178 <li><a href="#tag_LIMITED">LIMITED</a></li>
15179 </ul>
15180 </td>
15181
15182 </tr>
15183 <tr class="entries_header">
15184 <th class="th_details" colspan="5">Details</th>
15185 </tr>
15186 <tr class="entry_cont">
15187 <td class="entry_details" colspan="5">
15188 <p>When a request is submitted to the camera device,<wbr/> there is usually a
15189delay of several frames before the controls get applied.<wbr/> A camera
15190device may either choose to account for this delay by implementing a
15191pipeline and carefully submit well-timed atomic control updates,<wbr/> or
15192it may start streaming control changes that span over several frame
15193boundaries.<wbr/></p>
15194<p>In the latter case,<wbr/> whenever a request's settings change relative to
15195the previous submitted request,<wbr/> the full set of changes may take
15196multiple frame durations to fully take effect.<wbr/> Some settings may
15197take effect sooner (in less frame durations) than others.<wbr/></p>
15198<p>While a set of control changes are being propagated,<wbr/> this value
15199will be CONVERGING.<wbr/></p>
15200<p>Once it is fully known that a set of control changes have been
15201finished propagating,<wbr/> and the resulting updated control settings
15202have been read back by the camera device,<wbr/> this value will be set
15203to a non-negative frame number (corresponding to the request to
15204which the results have synchronized to).<wbr/></p>
15205<p>Older camera device implementations may not have a way to detect
15206when all camera controls have been applied,<wbr/> and will always set this
15207value to UNKNOWN.<wbr/></p>
15208<p>FULL capability devices will always have this value set to the
15209frame number of the request corresponding to this result.<wbr/></p>
15210<p><em>Further details</em>:</p>
15211<ul>
15212<li>Whenever a request differs from the last request,<wbr/> any future
15213results not yet returned may have this value set to CONVERGING (this
15214could include any in-progress captures not yet returned by the camera
15215device,<wbr/> for more details see pipeline considerations below).<wbr/></li>
15216<li>Submitting a series of multiple requests that differ from the
15217previous request (e.<wbr/>g.<wbr/> r1,<wbr/> r2,<wbr/> r3 s.<wbr/>t.<wbr/> r1 != r2 != r3)
15218moves the new synchronization frame to the last non-repeating
15219request (using the smallest frame number from the contiguous list of
15220repeating requests).<wbr/></li>
15221<li>Submitting the same request repeatedly will not change this value
15222to CONVERGING,<wbr/> if it was already a non-negative value.<wbr/></li>
15223<li>When this value changes to non-negative,<wbr/> that means that all of the
15224metadata controls from the request have been applied,<wbr/> all of the
15225metadata controls from the camera device have been read to the
15226updated values (into the result),<wbr/> and all of the graphics buffers
15227corresponding to this result are also synchronized to the request.<wbr/></li>
15228</ul>
15229<p><em>Pipeline considerations</em>:</p>
15230<p>Submitting a request with updated controls relative to the previously
15231submitted requests may also invalidate the synchronization state
15232of all the results corresponding to currently in-flight requests.<wbr/></p>
15233<p>In other words,<wbr/> results for this current request and up to
15234<a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> prior requests may have their
15235<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> change to CONVERGING.<wbr/></p>
15236 </td>
15237 </tr>
15238
15239 <tr class="entries_header">
15240 <th class="th_details" colspan="5">HAL Implementation Details</th>
15241 </tr>
15242 <tr class="entry_cont">
15243 <td class="entry_details" colspan="5">
15244 <p>Using UNKNOWN here is illegal unless android.<wbr/>sync.<wbr/>max<wbr/>Latency
15245is also UNKNOWN.<wbr/></p>
15246<p>FULL capability devices should simply set this value to the
15247<code>frame_<wbr/>number</code> of the request this result corresponds to.<wbr/></p>
15248 </td>
15249 </tr>
15250
15251 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15252 <!-- end of entry -->
15253
15254
15255
15256 <!-- end of kind -->
15257 </tbody>
15258 <tr><td colspan="6" class="kind">static</td></tr>
15259
15260 <thead class="entries_header">
15261 <tr>
15262 <th class="th_name">Property Name</th>
15263 <th class="th_type">Type</th>
15264 <th class="th_description">Description</th>
15265 <th class="th_units">Units</th>
15266 <th class="th_range">Range</th>
15267 <th class="th_tags">Tags</th>
15268 </tr>
15269 </thead>
15270
15271 <tbody>
15272
15273
15274
15275
15276
15277
15278
15279
15280
15281
15282 <tr class="entry" id="static_android.sync.maxLatency">
15283 <td class="entry_name" rowspan="5">
15284 android.<wbr/>sync.<wbr/>max<wbr/>Latency
15285 </td>
15286 <td class="entry_type">
15287 <span class="entry_type_name entry_type_name_enum">int32</span>
15288
15289 <span class="entry_type_visibility"> [public]</span>
15290
15291 <ul class="entry_type_enum">
15292 <li>
15293 <span class="entry_type_enum_name">PER_FRAME_CONTROL</span>
15294 <span class="entry_type_enum_value">0</span>
15295 <span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/>
15296(and furthermore for all results,<wbr/>
15297<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>
15298<p>Changing controls over multiple requests one after another will
15299produce results that have those controls applied atomically
15300each frame.<wbr/></p>
15301<p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
15302 </li>
15303 <li>
15304 <span class="entry_type_enum_name">UNKNOWN</span>
15305 <span class="entry_type_enum_value">-1</span>
15306 <span class="entry_type_enum_notes"><p>Each new frame has some subset (potentially the entire set)
15307of the past requests applied to the camera settings.<wbr/></p>
15308<p>By submitting a series of identical requests,<wbr/> the camera device
15309will eventually have the camera settings applied,<wbr/> but it is
15310unknown when that exact point will be.<wbr/></p></span>
15311 </li>
15312 </ul>
15313
15314 </td> <!-- entry_type -->
15315
15316 <td class="entry_description">
15317 <p>The maximum number of frames that can occur after a request
15318(different than the previous) has been submitted,<wbr/> and before the
15319result's state becomes synchronized (by setting
15320<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> to a non-negative value).<wbr/></p>
15321 </td>
15322
15323 <td class="entry_units">
15324 number of processed requests
15325 </td>
15326
15327 <td class="entry_range">
15328 <p>&gt;= -1</p>
15329 </td>
15330
15331 <td class="entry_tags">
15332 <ul class="entry_tags">
15333 <li><a href="#tag_LIMITED">LIMITED</a></li>
15334 </ul>
15335 </td>
15336
15337 </tr>
15338 <tr class="entries_header">
15339 <th class="th_details" colspan="5">Details</th>
15340 </tr>
15341 <tr class="entry_cont">
15342 <td class="entry_details" colspan="5">
15343 <p>This defines the maximum distance (in number of metadata results),<wbr/>
15344between <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> and the equivalent
15345<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15346<p>In other words this acts as an upper boundary for how many frames
15347must occur before the camera device knows for a fact that the new
15348submitted camera settings have been applied in outgoing frames.<wbr/></p>
15349<p>For example if the distance was 2,<wbr/></p>
15350<pre><code>initial request = X (repeating)
15351request1 = X
15352request2 = Y
15353request3 = Y
15354request4 = Y
15355
15356where requestN has frameNumber N,<wbr/> and the first of the repeating
15357initial request's has frameNumber F (and F &lt; 1).<wbr/>
15358
15359initial result = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15360result1 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15361result2 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15362result3 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15363result4 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2 }
15364
15365where resultN has frameNumber N.<wbr/>
15366</code></pre>
15367<p>Since <code>result4</code> has a <code>frameNumber == 4</code> and
15368<code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2</code>,<wbr/> the distance is clearly
15369<code>4 - 2 = 2</code>.<wbr/></p>
15370 </td>
15371 </tr>
15372
15373 <tr class="entries_header">
15374 <th class="th_details" colspan="5">HAL Implementation Details</th>
15375 </tr>
15376 <tr class="entry_cont">
15377 <td class="entry_details" colspan="5">
15378 <p>Use <code>frame_<wbr/>count</code> from camera3_<wbr/>request_<wbr/>t instead of
15379<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15380<p>LIMITED devices are strongly encouraged to use a non-negative
15381value.<wbr/> If UNKNOWN is used here then app developers do not have a way
15382to know when sensor settings have been applied.<wbr/></p>
15383 </td>
15384 </tr>
15385
15386 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15387 <!-- end of entry -->
15388
15389
15390
15391 <!-- end of kind -->
15392 </tbody>
15393
15394 <!-- end of section -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015395<!-- </namespace> -->
15396 </table>
15397
15398 <div class="tags" id="tag_index">
15399 <h2>Tags</h2>
15400 <ul>
15401 <li id="tag_AWB">AWB -
15402 Needed for auto white balance
15403
15404 <ul class="tags_entries">
15405 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15406 </ul>
15407 </li> <!-- tag_AWB -->
15408 <li id="tag_BC">BC -
15409 Needed for backwards compatibility with old Java API
15410
15411 <ul class="tags_entries">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -080015412 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015413 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
15414 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
15415 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
15416 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
15417 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015418 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015419 <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
15420 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015421 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015422 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
15423 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15424 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
15425 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
15426 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
15427 <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
15428 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
15429 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -080015430 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015431 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
15432 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
15433 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
15434 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
15435 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
15436 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
15437 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
15438 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
15439 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
15440 <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
15441 <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
15442 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
15443 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
15444 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
15445 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
15446 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
15447 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
15448 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
15449 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
15450 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15451 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15452 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a> (static)</li>
15453 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
15454 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
15455 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
15456 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
15457 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
15458 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
Igor Murashkinf11a4df2013-05-07 10:00:46 -070015459 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015460 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
15461 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
15462 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015463 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015464 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015465 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15466 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15467 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15468 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
15469 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
15470 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
15471 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
15472 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
15473 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
15474 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
15475 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
15476 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
15477 </ul>
15478 </li> <!-- tag_BC -->
15479 <li id="tag_V1">V1 -
15480 New features for first camera 2 release (API1)
15481
15482 <ul class="tags_entries">
15483 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
15484 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
15485 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
15486 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
15487 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
15488 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
15489 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
15490 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
15491 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15492 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
15493 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
15494 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
15495 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15496 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
15497 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li>
15498 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
15499 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
15500 <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li>
15501 <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
15502 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
15503 <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
15504 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
15505 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
15506 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015507 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015508 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
15509 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15510 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15511 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15512 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15513 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li>
15514 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
15515 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
15516 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
15517 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
15518 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
15519 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
15520 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
15521 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
15522 </ul>
15523 </li> <!-- tag_V1 -->
15524 <li id="tag_ADV">ADV - None
15525 <ul class="tags_entries">
15526 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
15527 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
15528 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li>
15529 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li>
15530 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li>
15531 <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
15532 </ul>
15533 </li> <!-- tag_ADV -->
15534 <li id="tag_DNG">DNG -
15535 Needed for DNG file support
15536
15537 <ul class="tags_entries">
15538 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015539 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
15540 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
15541 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15542 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
15543 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
15544 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li>
15545 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li>
15546 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li>
15547 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li>
15548 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li>
15549 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li>
15550 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15551 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li>
15552 </ul>
15553 </li> <!-- tag_DNG -->
15554 <li id="tag_EXIF">EXIF - None
15555 <ul class="tags_entries">
15556 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15557 </ul>
15558 </li> <!-- tag_EXIF -->
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015559 <li id="tag_HAL2">HAL2 -
Alex Rayef40ad62013-10-01 17:52:33 -070015560 Entry is only used by camera device HAL 2.x
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015561
15562 <ul class="tags_entries">
15563 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li>
15564 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li>
15565 <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015566 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015567 </ul>
15568 </li> <!-- tag_HAL2 -->
Alex Rayef40ad62013-10-01 17:52:33 -070015569 <li id="tag_FULL">FULL -
15570 Entry is required for full hardware level devices, and optional for other hardware levels
15571
15572 <ul class="tags_entries">
15573 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15574 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15575 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li>
15576 </ul>
15577 </li> <!-- tag_FULL -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015578 <li id="tag_LIMITED">LIMITED -
15579 Entry assists with LIMITED device implementation. LIMITED devices
15580 must implement all entries with this tag. Optional for FULL devices.
15581
15582 <ul class="tags_entries">
15583 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a> (dynamic)</li>
15584 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a> (static)</li>
15585 </ul>
15586 </li> <!-- tag_LIMITED -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015587 </ul>
15588 </div>
15589
15590 [ <a href="#">top</a> ]
15591
15592</body>
15593</html>