blob: 414d6f8bb4282e987f0fa0f7ddb49db459355a09 [file] [log] [blame]
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001<!DOCTYPE html>
2<html>
3<!-- Copyright (C) 2012 The Android Open Source Project
4
5 Licensed under the Apache License, Version 2.0 (the "License");
6 you may not use this file except in compliance with the License.
7 You may obtain a copy of the License at
8
9 http://www.apache.org/licenses/LICENSE-2.0
10
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
16-->
17<head>
18 <!-- automatically generated from html.mako. do NOT edit directly -->
19 <meta charset="utf-8" />
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070020 <title>Android Camera HAL3.0 Properties</title>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021 <style type="text/css">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070022 body { background-color: #f7f7f7; font-family: Roboto, sans-serif;}
23 h1 { color: #333333; }
24 h2 { color: #333333; }
25 a:link { color: #258aaf; text-decoration: none}
26 a:hover { color: #459aaf; text-decoration: underline }
27 a:visited { color: #154a5f; text-decoration: none}
28 .section { color: #eeeeee; font-size: 1.5em; font-weight: bold; background-color: #888888; padding: 0.5em 0em 0.5em 0.5em; border-width: thick thin thin thin; border-color: #111111 #777777 #777777 #777777}
29 .kind { color: #eeeeee; font-size: 1.2em; font-weight: bold; padding-left: 1.5em; background-color: #aaaaaa }
30 .entry { background-color: #f0f0f0 }
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080031 .entry_cont { background-color: #f0f0f0 }
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070032 .entries_header { background-color: #dddddd; text-align: center}
33
34 /* toc style */
35 .toc_section_header { font-size:1.3em; }
36 .toc_kind_header { font-size:1.2em; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080037
38 /* table column sizes */
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070039 table { border-collapse:collapse; table-layout: fixed; width: 100%; word-wrap: break-word }
40 td,th { border: 1px solid; border-color: #aaaaaa; padding-left: 0.5em; padding-right: 0.5em }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080041 .th_name { width: 20% }
42 .th_units { width: 10% }
43 .th_tags { width: 5% }
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080044 .th_details { width: 25% }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080045 .th_type { width: 20% }
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070046 .th_description { width: 20% }
47 .th_range { width: 10% }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080048 td { font-size: 0.9em; }
49
50 /* hide the first thead, we need it there only to enforce column sizes */
51 .thead_dummy { visibility: hidden; }
52
53 /* Entry flair */
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080054 .entry_name { color: #333333; padding-left:1.0em; font-size:1.1em; font-family: monospace; vertical-align:top; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080055
56 /* Entry type flair */
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070057 .entry_type_name { font-size:1.1em; color: #669900; font-weight: bold;}
58 .entry_type_name_enum:after { color: #669900; font-weight: bold; content:" (enum)" }
59 .entry_type_visibility { font-weight: bolder; padding-left:1em}
Igor Murashkin08b8aad2012-11-29 15:23:03 -080060 .entry_type_enum_name { font-family: monospace; font-weight: bolder; }
61 .entry_type_enum_notes:before { content:" - " }
Igor Murashkina10351a2014-01-15 17:05:22 -080062 .entry_type_enum_notes>p:first-child { display:inline; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080063 .entry_type_enum_value:before { content:" = " }
64 .entry_type_enum_value { font-family: monospace; }
65 .entry ul { margin: 0 0 0 0; list-style-position: inside; padding-left: 0.5em; }
66 .entry ul li { padding: 0 0 0 0; margin: 0 0 0 0;}
67
68 /* Entry tags flair */
69 .entry_tags ul { list-style-type: none; }
70
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080071 /* Entry details (full docs) flair */
72 .entry_details_header { font-weight: bold; background-color: #dddddd;
73 text-align: center; font-size: 1.1em; margin-left: 0em; margin-right: 0em; }
74
75 /* Entry spacer flair */
76 .entry_spacer { background-color: transparent; border-style: none; height: 0.5em; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080077
78 /* TODO: generate abbr element for each tag link? */
79 /* TODO for each x.y.z try to link it to the entry */
80
81 </style>
82
83 <style>
84
85 {
86 /* broken...
87 supposedly there is a bug in chrome that it lays out tables before
88 it knows its being printed, so the page-break-* styles are ignored
89 */
90 tr { page-break-after: always; page-break-inside: avoid; }
91 }
92
93 </style>
94</head>
95
96
97
Igor Murashkin08b8aad2012-11-29 15:23:03 -080098<body>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070099 <h1>Android Camera HAL3.0 Properties</h1>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800100
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700101
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800102 <h2>Table of Contents</h2>
103 <ul class="toc">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700104 <li><a href="#tag_index" class="toc_section_header">Tags</a></li>
105 <li>
106 <span class="toc_section_header"><a href="#section_colorCorrection">colorCorrection</a></span>
107 <ul class="toc_section">
108 <li>
109 <span class="toc_kind_header">controls</span>
110 <ul class="toc_section">
111 <li><a href="#controls_android.colorCorrection.mode">android.colorCorrection.mode</a></li>
112 <li><a href="#controls_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700113 <li><a href="#controls_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700114 </ul>
115 </li>
116 <li>
117 <span class="toc_kind_header">dynamic</span>
118 <ul class="toc_section">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700119 <li><a href="#dynamic_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
120 <li><a href="#dynamic_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700121 </ul>
122 </li>
123 </ul> <!-- toc_section -->
124 </li>
125 <li>
126 <span class="toc_section_header"><a href="#section_control">control</a></span>
127 <ul class="toc_section">
128 <li>
129 <span class="toc_kind_header">controls</span>
130 <ul class="toc_section">
131 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a></li>
132 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a></li>
133 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a></li>
134 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a></li>
135 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a></li>
136 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a></li>
137 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a></li>
138 <li><a href="#controls_android.control.afMode">android.control.afMode</a></li>
139 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a></li>
140 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a></li>
141 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a></li>
142 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a></li>
143 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a></li>
144 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a></li>
145 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a></li>
146 <li><a href="#controls_android.control.mode">android.control.mode</a></li>
147 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a></li>
148 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a></li>
149 </ul>
150 </li>
151 <li>
152 <span class="toc_kind_header">static</span>
153 <ul class="toc_section">
154 <li><a href="#static_android.control.aeAvailableAntibandingModes">android.control.aeAvailableAntibandingModes</a></li>
155 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a></li>
156 <li><a href="#static_android.control.aeAvailableTargetFpsRanges">android.control.aeAvailableTargetFpsRanges</a></li>
157 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a></li>
158 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a></li>
159 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a></li>
160 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a></li>
161 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a></li>
162 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a></li>
163 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a></li>
164 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a></li>
165 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a></li>
166 </ul>
167 </li>
168 <li>
169 <span class="toc_kind_header">dynamic</span>
170 <ul class="toc_section">
171 <li><a href="#dynamic_android.control.aePrecaptureId">android.control.aePrecaptureId</a></li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -0800172 <li><a href="#dynamic_android.control.aeMode">android.control.aeMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700173 <li><a href="#dynamic_android.control.aeRegions">android.control.aeRegions</a></li>
174 <li><a href="#dynamic_android.control.aeState">android.control.aeState</a></li>
175 <li><a href="#dynamic_android.control.afMode">android.control.afMode</a></li>
176 <li><a href="#dynamic_android.control.afRegions">android.control.afRegions</a></li>
177 <li><a href="#dynamic_android.control.afState">android.control.afState</a></li>
178 <li><a href="#dynamic_android.control.afTriggerId">android.control.afTriggerId</a></li>
179 <li><a href="#dynamic_android.control.awbMode">android.control.awbMode</a></li>
180 <li><a href="#dynamic_android.control.awbRegions">android.control.awbRegions</a></li>
181 <li><a href="#dynamic_android.control.awbState">android.control.awbState</a></li>
182 <li><a href="#dynamic_android.control.mode">android.control.mode</a></li>
183 </ul>
184 </li>
185 </ul> <!-- toc_section -->
186 </li>
187 <li>
188 <span class="toc_section_header"><a href="#section_demosaic">demosaic</a></span>
189 <ul class="toc_section">
190 <li>
191 <span class="toc_kind_header">controls</span>
192 <ul class="toc_section">
193 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a></li>
194 </ul>
195 </li>
196 </ul> <!-- toc_section -->
197 </li>
198 <li>
199 <span class="toc_section_header"><a href="#section_edge">edge</a></span>
200 <ul class="toc_section">
201 <li>
202 <span class="toc_kind_header">controls</span>
203 <ul class="toc_section">
204 <li><a href="#controls_android.edge.mode">android.edge.mode</a></li>
205 <li><a href="#controls_android.edge.strength">android.edge.strength</a></li>
206 </ul>
207 </li>
208 <li>
209 <span class="toc_kind_header">dynamic</span>
210 <ul class="toc_section">
211 <li><a href="#dynamic_android.edge.mode">android.edge.mode</a></li>
212 </ul>
213 </li>
214 </ul> <!-- toc_section -->
215 </li>
216 <li>
217 <span class="toc_section_header"><a href="#section_flash">flash</a></span>
218 <ul class="toc_section">
219 <li>
220 <span class="toc_kind_header">controls</span>
221 <ul class="toc_section">
222 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a></li>
223 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a></li>
224 <li><a href="#controls_android.flash.mode">android.flash.mode</a></li>
225 </ul>
226 </li>
227 <li>
228 <span class="toc_kind_header">static</span>
229 <ul class="toc_section">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800230
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700231 <li><a href="#static_android.flash.info.available">android.flash.info.available</a></li>
232 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800233
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700234 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a></li>
235 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a></li>
236 </ul>
237 </li>
238 <li>
239 <span class="toc_kind_header">dynamic</span>
240 <ul class="toc_section">
241 <li><a href="#dynamic_android.flash.firingPower">android.flash.firingPower</a></li>
242 <li><a href="#dynamic_android.flash.firingTime">android.flash.firingTime</a></li>
243 <li><a href="#dynamic_android.flash.mode">android.flash.mode</a></li>
244 <li><a href="#dynamic_android.flash.state">android.flash.state</a></li>
245 </ul>
246 </li>
247 </ul> <!-- toc_section -->
248 </li>
249 <li>
250 <span class="toc_section_header"><a href="#section_geometric">geometric</a></span>
251 <ul class="toc_section">
252 <li>
253 <span class="toc_kind_header">controls</span>
254 <ul class="toc_section">
255 <li><a href="#controls_android.geometric.mode">android.geometric.mode</a></li>
256 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a></li>
257 </ul>
258 </li>
259 </ul> <!-- toc_section -->
260 </li>
261 <li>
262 <span class="toc_section_header"><a href="#section_hotPixel">hotPixel</a></span>
263 <ul class="toc_section">
264 <li>
265 <span class="toc_kind_header">controls</span>
266 <ul class="toc_section">
267 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a></li>
268 </ul>
269 </li>
270 <li>
271 <span class="toc_kind_header">static</span>
272 <ul class="toc_section">
273
274 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a></li>
275
276 </ul>
277 </li>
278 <li>
279 <span class="toc_kind_header">dynamic</span>
280 <ul class="toc_section">
281 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a></li>
282 </ul>
283 </li>
284 </ul> <!-- toc_section -->
285 </li>
286 <li>
287 <span class="toc_section_header"><a href="#section_jpeg">jpeg</a></span>
288 <ul class="toc_section">
289 <li>
290 <span class="toc_kind_header">controls</span>
291 <ul class="toc_section">
292 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
293 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
294 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
295 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a></li>
296 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a></li>
297 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
298 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
299 </ul>
300 </li>
301 <li>
302 <span class="toc_kind_header">static</span>
303 <ul class="toc_section">
304 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a></li>
305 <li><a href="#static_android.jpeg.maxSize">android.jpeg.maxSize</a></li>
306 </ul>
307 </li>
308 <li>
309 <span class="toc_kind_header">dynamic</span>
310 <ul class="toc_section">
311 <li><a href="#dynamic_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
312 <li><a href="#dynamic_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
313 <li><a href="#dynamic_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
314 <li><a href="#dynamic_android.jpeg.orientation">android.jpeg.orientation</a></li>
315 <li><a href="#dynamic_android.jpeg.quality">android.jpeg.quality</a></li>
316 <li><a href="#dynamic_android.jpeg.size">android.jpeg.size</a></li>
317 <li><a href="#dynamic_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
318 <li><a href="#dynamic_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
319 </ul>
320 </li>
321 </ul> <!-- toc_section -->
322 </li>
323 <li>
324 <span class="toc_section_header"><a href="#section_lens">lens</a></span>
325 <ul class="toc_section">
326 <li>
327 <span class="toc_kind_header">controls</span>
328 <ul class="toc_section">
329 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a></li>
330 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a></li>
331 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a></li>
332 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a></li>
333 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
334 </ul>
335 </li>
336 <li>
337 <span class="toc_kind_header">static</span>
338 <ul class="toc_section">
339
340 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a></li>
341 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a></li>
342 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a></li>
343 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a></li>
344 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a></li>
345 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a></li>
346 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a></li>
347 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700348 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a></li>
349
350 <li><a href="#static_android.lens.facing">android.lens.facing</a></li>
351 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a></li>
352 <li><a href="#static_android.lens.position">android.lens.position</a></li>
353 </ul>
354 </li>
355 <li>
356 <span class="toc_kind_header">dynamic</span>
357 <ul class="toc_section">
358 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a></li>
359 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a></li>
360 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a></li>
361 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a></li>
362 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a></li>
363 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
364 <li><a href="#dynamic_android.lens.state">android.lens.state</a></li>
365 </ul>
366 </li>
367 </ul> <!-- toc_section -->
368 </li>
369 <li>
370 <span class="toc_section_header"><a href="#section_noiseReduction">noiseReduction</a></span>
371 <ul class="toc_section">
372 <li>
373 <span class="toc_kind_header">controls</span>
374 <ul class="toc_section">
375 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
376 <li><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a></li>
377 </ul>
378 </li>
379 <li>
380 <span class="toc_kind_header">dynamic</span>
381 <ul class="toc_section">
382 <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
383 </ul>
384 </li>
385 </ul> <!-- toc_section -->
386 </li>
387 <li>
388 <span class="toc_section_header"><a href="#section_quirks">quirks</a></span>
389 <ul class="toc_section">
390 <li>
391 <span class="toc_kind_header">static</span>
392 <ul class="toc_section">
393 <li><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a></li>
394 <li><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a></li>
395 <li><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a></li>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -0700396 <li><a href="#static_android.quirks.usePartialResult">android.quirks.usePartialResult</a></li>
397 </ul>
398 </li>
399 <li>
400 <span class="toc_kind_header">dynamic</span>
401 <ul class="toc_section">
402 <li><a href="#dynamic_android.quirks.partialResult">android.quirks.partialResult</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700403 </ul>
404 </li>
405 </ul> <!-- toc_section -->
406 </li>
407 <li>
408 <span class="toc_section_header"><a href="#section_request">request</a></span>
409 <ul class="toc_section">
410 <li>
411 <span class="toc_kind_header">controls</span>
412 <ul class="toc_section">
413 <li><a href="#controls_android.request.frameCount">android.request.frameCount</a></li>
414 <li><a href="#controls_android.request.id">android.request.id</a></li>
415 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a></li>
416 <li><a href="#controls_android.request.metadataMode">android.request.metadataMode</a></li>
417 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a></li>
418 <li><a href="#controls_android.request.type">android.request.type</a></li>
419 </ul>
420 </li>
421 <li>
422 <span class="toc_kind_header">static</span>
423 <ul class="toc_section">
424 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a></li>
425 <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a></li>
Zhijun He12744b22014-01-22 15:58:57 -0800426 <li><a href="#static_android.request.maxNumInputStreams">android.request.maxNumInputStreams</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800427 <li><a href="#static_android.request.pipelineMaxDepth">android.request.pipelineMaxDepth</a></li>
Igor Murashkin2e291102014-01-10 14:18:30 -0800428 <li><a href="#static_android.request.partialResultCount">android.request.partialResultCount</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700429 </ul>
430 </li>
431 <li>
432 <span class="toc_kind_header">dynamic</span>
433 <ul class="toc_section">
434 <li><a href="#dynamic_android.request.frameCount">android.request.frameCount</a></li>
435 <li><a href="#dynamic_android.request.id">android.request.id</a></li>
436 <li><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a></li>
437 <li><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800438 <li><a href="#dynamic_android.request.pipelineDepth">android.request.pipelineDepth</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700439 </ul>
440 </li>
441 </ul> <!-- toc_section -->
442 </li>
443 <li>
444 <span class="toc_section_header"><a href="#section_scaler">scaler</a></span>
445 <ul class="toc_section">
446 <li>
447 <span class="toc_kind_header">controls</span>
448 <ul class="toc_section">
449 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
450 </ul>
451 </li>
452 <li>
453 <span class="toc_kind_header">static</span>
454 <ul class="toc_section">
455 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a></li>
456 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a></li>
457 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a></li>
458 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a></li>
459 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a></li>
460 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a></li>
461 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a></li>
462 <li><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a></li>
463 </ul>
464 </li>
465 <li>
466 <span class="toc_kind_header">dynamic</span>
467 <ul class="toc_section">
468 <li><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
469 </ul>
470 </li>
471 </ul> <!-- toc_section -->
472 </li>
473 <li>
474 <span class="toc_section_header"><a href="#section_sensor">sensor</a></span>
475 <ul class="toc_section">
476 <li>
477 <span class="toc_kind_header">controls</span>
478 <ul class="toc_section">
479 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
480 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
481 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800482 <li><a href="#controls_android.sensor.testPatternData">android.sensor.testPatternData</a></li>
483 <li><a href="#controls_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700484 </ul>
485 </li>
486 <li>
487 <span class="toc_kind_header">static</span>
488 <ul class="toc_section">
489
490 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700491 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700492 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a></li>
493 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a></li>
494 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a></li>
495 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a></li>
496 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a></li>
497 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a></li>
498
499 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a></li>
500 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a></li>
501 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a></li>
502 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a></li>
503 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a></li>
504 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a></li>
505 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a></li>
506 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a></li>
507 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a></li>
508 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a></li>
509 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a></li>
510 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a></li>
511 <li><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800512 <li><a href="#static_android.sensor.availableTestPatternModes">android.sensor.availableTestPatternModes</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700513 </ul>
514 </li>
515 <li>
516 <span class="toc_kind_header">dynamic</span>
517 <ul class="toc_section">
518 <li><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
519 <li><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
520 <li><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
521 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a></li>
Igor Murashkin656aa5a2013-08-13 14:23:39 -0700522 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800523 <li><a href="#dynamic_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700524 </ul>
525 </li>
526 </ul> <!-- toc_section -->
527 </li>
528 <li>
529 <span class="toc_section_header"><a href="#section_shading">shading</a></span>
530 <ul class="toc_section">
531 <li>
532 <span class="toc_kind_header">controls</span>
533 <ul class="toc_section">
534 <li><a href="#controls_android.shading.mode">android.shading.mode</a></li>
535 <li><a href="#controls_android.shading.strength">android.shading.strength</a></li>
536 </ul>
537 </li>
538 <li>
539 <span class="toc_kind_header">dynamic</span>
540 <ul class="toc_section">
541 <li><a href="#dynamic_android.shading.mode">android.shading.mode</a></li>
542 </ul>
543 </li>
544 </ul> <!-- toc_section -->
545 </li>
546 <li>
547 <span class="toc_section_header"><a href="#section_statistics">statistics</a></span>
548 <ul class="toc_section">
549 <li>
550 <span class="toc_kind_header">controls</span>
551 <ul class="toc_section">
552 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
553 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
554 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700555 <li><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700556 </ul>
557 </li>
558 <li>
559 <span class="toc_kind_header">static</span>
560 <ul class="toc_section">
561
562 <li><a href="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a></li>
563 <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a></li>
564 <li><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a></li>
565 <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a></li>
566 <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a></li>
567 <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a></li>
568
569 </ul>
570 </li>
571 <li>
572 <span class="toc_kind_header">dynamic</span>
573 <ul class="toc_section">
574 <li><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
575 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a></li>
576 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a></li>
577 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a></li>
578 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a></li>
579 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a></li>
580 <li><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
581 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a></li>
582 <li><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700583 <li><a href="#dynamic_android.statistics.lensShadingMap">android.statistics.lensShadingMap</a></li>
584 <li><a href="#dynamic_android.statistics.predictedColorGains">android.statistics.predictedColorGains</a></li>
585 <li><a href="#dynamic_android.statistics.predictedColorTransform">android.statistics.predictedColorTransform</a></li>
586 <li><a href="#dynamic_android.statistics.sceneFlicker">android.statistics.sceneFlicker</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700587 </ul>
588 </li>
589 </ul> <!-- toc_section -->
590 </li>
591 <li>
592 <span class="toc_section_header"><a href="#section_tonemap">tonemap</a></span>
593 <ul class="toc_section">
594 <li>
595 <span class="toc_kind_header">controls</span>
596 <ul class="toc_section">
597 <li><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
598 <li><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
599 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
600 <li><a href="#controls_android.tonemap.mode">android.tonemap.mode</a></li>
601 </ul>
602 </li>
603 <li>
604 <span class="toc_kind_header">static</span>
605 <ul class="toc_section">
606 <li><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a></li>
607 </ul>
608 </li>
609 <li>
610 <span class="toc_kind_header">dynamic</span>
611 <ul class="toc_section">
612 <li><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
613 <li><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
614 <li><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
615 <li><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a></li>
616 </ul>
617 </li>
618 </ul> <!-- toc_section -->
619 </li>
620 <li>
621 <span class="toc_section_header"><a href="#section_led">led</a></span>
622 <ul class="toc_section">
623 <li>
624 <span class="toc_kind_header">controls</span>
625 <ul class="toc_section">
626 <li><a href="#controls_android.led.transmit">android.led.transmit</a></li>
627 </ul>
628 </li>
629 <li>
630 <span class="toc_kind_header">dynamic</span>
631 <ul class="toc_section">
632 <li><a href="#dynamic_android.led.transmit">android.led.transmit</a></li>
633 </ul>
634 </li>
635 <li>
636 <span class="toc_kind_header">static</span>
637 <ul class="toc_section">
638 <li><a href="#static_android.led.availableLeds">android.led.availableLeds</a></li>
639 </ul>
640 </li>
641 </ul> <!-- toc_section -->
642 </li>
643 <li>
644 <span class="toc_section_header"><a href="#section_info">info</a></span>
645 <ul class="toc_section">
646 <li>
647 <span class="toc_kind_header">static</span>
648 <ul class="toc_section">
649 <li><a href="#static_android.info.supportedHardwareLevel">android.info.supportedHardwareLevel</a></li>
650 </ul>
651 </li>
652 </ul> <!-- toc_section -->
653 </li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700654 <li>
655 <span class="toc_section_header"><a href="#section_blackLevel">blackLevel</a></span>
656 <ul class="toc_section">
657 <li>
658 <span class="toc_kind_header">controls</span>
659 <ul class="toc_section">
660 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a></li>
661 </ul>
662 </li>
663 <li>
664 <span class="toc_kind_header">dynamic</span>
665 <ul class="toc_section">
666 <li><a href="#dynamic_android.blackLevel.lock">android.blackLevel.lock</a></li>
667 </ul>
668 </li>
669 </ul> <!-- toc_section -->
670 </li>
Igor Murashkin5c1fc682014-01-16 17:51:36 -0800671 <li>
672 <span class="toc_section_header"><a href="#section_sync">sync</a></span>
673 <ul class="toc_section">
674 <li>
675 <span class="toc_kind_header">dynamic</span>
676 <ul class="toc_section">
677 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a></li>
678 </ul>
679 </li>
680 <li>
681 <span class="toc_kind_header">static</span>
682 <ul class="toc_section">
683 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a></li>
684 </ul>
685 </li>
686 </ul> <!-- toc_section -->
687 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800688 </ul>
689
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700690
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800691 <h1>Properties</h1>
692 <table class="properties">
693
694 <thead class="thead_dummy">
695 <tr>
696 <th class="th_name">Property Name</th>
697 <th class="th_type">Type</th>
698 <th class="th_description">Description</th>
699 <th class="th_units">Units</th>
700 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800701 <th class="th_tags">Tags</th>
702 </tr>
703 </thead> <!-- so that the first occurrence of thead is not
704 above the first occurrence of tr -->
705<!-- <namespace name="android"> -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800706 <tr><td colspan="6" id="section_colorCorrection" class="section">colorCorrection</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800707
708
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800709 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800710
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700711 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800712 <tr>
713 <th class="th_name">Property Name</th>
714 <th class="th_type">Type</th>
715 <th class="th_description">Description</th>
716 <th class="th_units">Units</th>
717 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800718 <th class="th_tags">Tags</th>
719 </tr>
720 </thead>
721
722 <tbody>
723
724
725
726
727
728
729
730
731
732
733 <tr class="entry" id="controls_android.colorCorrection.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800734 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800735 android.<wbr/>color<wbr/>Correction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800736 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800737 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -0800738 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800739
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700740 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800741
742 <ul class="entry_type_enum">
743 <li>
744 <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
Igor Murashkina10351a2014-01-15 17:05:22 -0800745 <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
Igor Murashkin43817ad2014-01-10 15:58:35 -0800746and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
747<p>All advanced white balance adjustments (not specified
748by our white balance pipeline) must be disabled.<wbr/></p>
749<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
750TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override
751this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800752 </li>
753 <li>
754 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800755 <span class="entry_type_enum_notes"><p>Must not slow down capture rate relative to sensor raw
756output.<wbr/></p>
757<p>Advanced white balance adjustments above and beyond
758the specified white balance pipeline may be applied.<wbr/></p>
759<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
760the camera device uses the last frame's AWB values
761(or defaults if AWB has never been run).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800762 </li>
763 <li>
764 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800765 <span class="entry_type_enum_notes"><p>Capture rate (relative to sensor raw output)
766may be reduced by high quality.<wbr/></p>
767<p>Advanced white balance adjustments above and beyond
768the specified white balance pipeline may be applied.<wbr/></p>
769<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
770the camera device uses the last frame's AWB values
771(or defaults if AWB has never been run).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800772 </li>
773 </ul>
774
775 </td> <!-- entry_type -->
776
777 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800778 <p>The mode control selects how the image data is converted from the
779sensor's native color into linear sRGB color.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800780 </td>
781
782 <td class="entry_units">
783 </td>
784
785 <td class="entry_range">
786 </td>
787
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800788 <td class="entry_tags">
789 </td>
790
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800791 </tr>
792 <tr class="entries_header">
793 <th class="th_details" colspan="5">Details</th>
794 </tr>
795 <tr class="entry_cont">
796 <td class="entry_details" colspan="5">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800797 <p>When auto-white balance is enabled with <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> this
798control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the
799application controls how the color mapping is performed.<wbr/></p>
800<p>We define the expected processing pipeline below.<wbr/> For consistency
801across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p>
802<p>When either FULL or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may
803do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
804<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the
805camera device (in the results) and be roughly correct.<wbr/></p>
806<p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from
807FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point
808as what was produced by the camera device in the earlier frame.<wbr/></p>
809<p>The expected processing pipeline is as follows:</p>
810<p><img alt="White balance processing pipeline" src="images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png"/></p>
811<p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance
812gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform
813matrix (applied after demosaic).<wbr/></p>
814<p>The 4-channel white-balance gains are defined as:</p>
815<pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ]
816</code></pre>
817<p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the
818output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/>
819These may be identical for a given camera device implementation; if
820the camera device does not support a separate gain for even/<wbr/>odd green
821channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
822<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
823<p>The matrices for color transforms are defined as a 9-entry vector:</p>
824<pre><code><a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> = [ I0 I1 I2 I3 I4 I5 I6 I7 I8 ]
825</code></pre>
826<p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/>
827to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p>
828<p>with colors as follows:</p>
829<pre><code>r' = I0r + I1g + I2b
830g' = I3r + I4g + I5b
831b' = I6r + I7g + I8b
832</code></pre>
833<p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow
834values are clipped to fit within the range.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800835 </td>
836 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800837
838
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800839 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
840 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800841
842
843 <tr class="entry" id="controls_android.colorCorrection.transform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800844 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800845 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800846 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800847 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700848 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800849 <span class="entry_type_container">x</span>
850
851 <span class="entry_type_array">
852 3 x 3
853 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700854 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800855 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800856
857
858 </td> <!-- entry_type -->
859
860 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -0800861 <p>A color transform matrix to use to transform
862from sensor RGB color space to output linear sRGB color space</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800863 </td>
864
865 <td class="entry_units">
866 </td>
867
868 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800869 <p>Output values are expected to be in the range
870(0,<wbr/>1)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800871 </td>
872
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800873 <td class="entry_tags">
874 </td>
875
876 </tr>
877 <tr class="entries_header">
878 <th class="th_details" colspan="5">Details</th>
879 </tr>
880 <tr class="entry_cont">
881 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -0800882 <p>This matrix is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800883<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 -0800884directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800885<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 -0800886<p>In the latter case,<wbr/> the HAL may round the matrix to account
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800887for precision issues; the final rounded matrix should be
Igor Murashkin0b080452013-12-27 15:30:25 -0800888reported back in this matrix result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700889 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800890 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800891
892
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800893 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
894 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -0700895
896
897 <tr class="entry" id="controls_android.colorCorrection.gains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800898 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800899 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800900 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700901 <td class="entry_type">
902 <span class="entry_type_name">float</span>
903 <span class="entry_type_container">x</span>
904
905 <span class="entry_type_array">
906 4
907 </span>
908 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800909 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700910
911
912 </td> <!-- entry_type -->
913
914 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800915 <p>Gains applying to Bayer raw color channels for
Igor Murashkin0b080452013-12-27 15:30:25 -0800916white-balance</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700917 </td>
918
919 <td class="entry_units">
920 </td>
921
922 <td class="entry_range">
923 </td>
924
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800925 <td class="entry_tags">
926 </td>
927
928 </tr>
929 <tr class="entries_header">
930 <th class="th_details" colspan="5">Details</th>
931 </tr>
932 <tr class="entry_cont">
933 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -0800934 <p>The 4-channel white-balance gains are defined in
Igor Murashkin43817ad2014-01-10 15:58:35 -0800935the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
936for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
937is the gain for green pixels on the odd rows.<wbr/> if a HAL
Igor Murashkin0b080452013-12-27 15:30:25 -0800938does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800939it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
940<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800941<p>This array is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800942<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800943directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800944<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800945<p>The output should be the gains actually applied by the HAL to
Igor Murashkin0b080452013-12-27 15:30:25 -0800946the current frame.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800947 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800948 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800949
950
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800951 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
952 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800953
954
955
956 <!-- end of kind -->
957 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800958 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800959
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700960 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800961 <tr>
962 <th class="th_name">Property Name</th>
963 <th class="th_type">Type</th>
964 <th class="th_description">Description</th>
965 <th class="th_units">Units</th>
966 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800967 <th class="th_tags">Tags</th>
968 </tr>
969 </thead>
970
971 <tbody>
972
973
974
975
976
977
978
979
980
981
Zhijun He69fc0ea2013-07-17 09:42:58 -0700982 <tr class="entry" id="dynamic_android.colorCorrection.transform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800983 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800984 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800985 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800986 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700987 <span class="entry_type_name">rational</span>
988 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800989
Zhijun He69fc0ea2013-07-17 09:42:58 -0700990 <span class="entry_type_array">
991 3 x 3
992 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700993 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800994 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800995
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800996
997 </td> <!-- entry_type -->
998
999 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001000 <p>A color transform matrix to use to transform
1001from sensor RGB color space to output linear sRGB color space</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001002 </td>
1003
1004 <td class="entry_units">
1005 </td>
1006
1007 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001008 <p>Output values are expected to be in the range
1009(0,<wbr/>1)</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001010 </td>
1011
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001012 <td class="entry_tags">
1013 </td>
1014
1015 </tr>
1016 <tr class="entries_header">
1017 <th class="th_details" colspan="5">Details</th>
1018 </tr>
1019 <tr class="entry_cont">
1020 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001021 <p>This matrix is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001022<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 -08001023directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001024<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 -08001025<p>In the latter case,<wbr/> the HAL may round the matrix to account
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001026for precision issues; the final rounded matrix should be
Igor Murashkin0b080452013-12-27 15:30:25 -08001027reported back in this matrix result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001028 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001029 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001030
1031
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001032 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1033 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -07001034
1035
1036 <tr class="entry" id="dynamic_android.colorCorrection.gains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001037 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001038 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001039 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001040 <td class="entry_type">
1041 <span class="entry_type_name">float</span>
1042 <span class="entry_type_container">x</span>
1043
1044 <span class="entry_type_array">
1045 4
1046 </span>
1047 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08001048 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001049
1050
1051 </td> <!-- entry_type -->
1052
1053 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -08001054 <p>Gains applying to Bayer raw color channels for
Igor Murashkin0b080452013-12-27 15:30:25 -08001055white-balance</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001056 </td>
1057
1058 <td class="entry_units">
1059 </td>
1060
1061 <td class="entry_range">
1062 </td>
1063
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001064 <td class="entry_tags">
1065 </td>
1066
1067 </tr>
1068 <tr class="entries_header">
1069 <th class="th_details" colspan="5">Details</th>
1070 </tr>
1071 <tr class="entry_cont">
1072 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001073 <p>The 4-channel white-balance gains are defined in
Igor Murashkin43817ad2014-01-10 15:58:35 -08001074the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
1075for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
1076is the gain for green pixels on the odd rows.<wbr/> if a HAL
Igor Murashkin0b080452013-12-27 15:30:25 -08001077does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
Igor Murashkin43817ad2014-01-10 15:58:35 -08001078it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
1079<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001080<p>This array is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001081<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001082directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001083<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin43817ad2014-01-10 15:58:35 -08001084<p>The output should be the gains actually applied by the HAL to
Igor Murashkin0b080452013-12-27 15:30:25 -08001085the current frame.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001086 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001087 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001088
1089
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001090 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1091 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001092
1093
1094
1095 <!-- end of kind -->
1096 </tbody>
1097
1098 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001099 <tr><td colspan="6" id="section_control" class="section">control</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001100
1101
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001102 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001103
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001104 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001105 <tr>
1106 <th class="th_name">Property Name</th>
1107 <th class="th_type">Type</th>
1108 <th class="th_description">Description</th>
1109 <th class="th_units">Units</th>
1110 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001111 <th class="th_tags">Tags</th>
1112 </tr>
1113 </thead>
1114
1115 <tbody>
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126 <tr class="entry" id="controls_android.control.aeAntibandingMode">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001127 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001128 android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001129 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001130 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001131 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001132
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001133 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001134
1135 <ul class="entry_type_enum">
1136 <li>
1137 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001138 <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
1139avoid banding problems.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001140 </li>
1141 <li>
1142 <span class="entry_type_enum_name">50HZ</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001143 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1144avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001145 </li>
1146 <li>
1147 <span class="entry_type_enum_name">60HZ</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001148 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1149avoid banding problems with 60Hz illumination
1150sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001151 </li>
1152 <li>
1153 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001154 <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
1155antibanding routine to the current illumination
1156conditions.<wbr/> This is the default.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001157 </li>
1158 </ul>
1159
1160 </td> <!-- entry_type -->
1161
1162 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001163 <p>The desired setting for the camera device's auto-exposure
1164algorithm's antibanding compensation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001165 </td>
1166
1167 <td class="entry_units">
1168 </td>
1169
1170 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001171 <p><a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001172 </td>
1173
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001174 <td class="entry_tags">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001175 <ul class="entry_tags">
1176 <li><a href="#tag_BC">BC</a></li>
1177 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001178 </td>
1179
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001180 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001181 <tr class="entries_header">
1182 <th class="th_details" colspan="5">Details</th>
1183 </tr>
1184 <tr class="entry_cont">
1185 <td class="entry_details" colspan="5">
1186 <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
1187lights,<wbr/> flicker at the rate of the power supply frequency
1188(60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
1189typically not noticeable to a person,<wbr/> it can be visible to
1190a camera device.<wbr/> If a camera sets its exposure time to the
1191wrong value,<wbr/> the flicker may become visible in the
1192viewfinder as flicker or in a final captured image,<wbr/> as a
1193set of variable-brightness bands across the image.<wbr/></p>
1194<p>Therefore,<wbr/> the auto-exposure routines of camera devices
1195include antibanding routines that ensure that the chosen
1196exposure value will not cause such banding.<wbr/> The choice of
1197exposure time depends on the rate of flicker,<wbr/> which the
1198camera device can detect automatically,<wbr/> or the expected
1199rate can be selected by the application using this
1200control.<wbr/></p>
1201<p>A given camera device may not support all of the possible
1202options for the antibanding mode.<wbr/> The
1203<a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
1204the available modes for a given camera device.<wbr/></p>
1205<p>The default mode is AUTO,<wbr/> which must be supported by all
1206camera devices.<wbr/></p>
1207<p>If manual exposure control is enabled (by setting
1208<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> to OFF),<wbr/>
1209then this setting has no effect,<wbr/> and the application must
1210ensure it selects exposure times that do not cause banding
1211issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
1212the application in this.<wbr/></p>
1213 </td>
1214 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001215
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001216 <tr class="entries_header">
1217 <th class="th_details" colspan="5">HAL Implementation Details</th>
1218 </tr>
1219 <tr class="entry_cont">
1220 <td class="entry_details" colspan="5">
1221 <p>For all capture request templates,<wbr/> this field must be set
1222to AUTO.<wbr/> AUTO is the only mode that must supported;
1223OFF,<wbr/> 50HZ,<wbr/> 60HZ are all optional.<wbr/></p>
1224<p>If manual exposure control is enabled (by setting
1225<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> to OFF),<wbr/>
1226then the exposure values provided by the application must not be
1227adjusted for antibanding.<wbr/></p>
1228 </td>
1229 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001230
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001231 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1232 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001233
1234
1235 <tr class="entry" id="controls_android.control.aeExposureCompensation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001236 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001237 android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001238 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001239 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001240 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001241
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001242 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001243
1244
1245 </td> <!-- entry_type -->
1246
1247 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001248 <p>Adjustment to AE target image
1249brightness</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001250 </td>
1251
1252 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08001253 count of positive/<wbr/>negative EV steps
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001254 </td>
1255
1256 <td class="entry_range">
1257 </td>
1258
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001259 <td class="entry_tags">
1260 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001261 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001262 </ul>
1263 </td>
1264
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001265 </tr>
1266 <tr class="entries_header">
1267 <th class="th_details" colspan="5">Details</th>
1268 </tr>
1269 <tr class="entry_cont">
1270 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001271 <p>For example,<wbr/> if EV step is 0.<wbr/>333,<wbr/> '6' will mean an
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001272exposure compensation of +2 EV; -3 will mean an exposure
Igor Murashkin0b080452013-12-27 15:30:25 -08001273compensation of -1</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001274 </td>
1275 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001276
1277
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001278 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1279 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001280
1281
1282 <tr class="entry" id="controls_android.control.aeLock">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001283 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001284 android.<wbr/>control.<wbr/>ae<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001285 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001286 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001287 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001288
Igor Murashkinb8dc8812013-07-17 16:29:34 -07001289 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001290
1291 <ul class="entry_type_enum">
1292 <li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001293 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001294 <span class="entry_type_enum_notes"><p>Autoexposure lock is disabled; the AE algorithm
1295is free to update its parameters.<wbr/></p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001296 </li>
1297 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001298 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001299 <span class="entry_type_enum_notes"><p>Autoexposure lock is enabled; the AE algorithm
1300must not update the exposure and sensitivity parameters
1301while the lock is active</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001302 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001303 </ul>
1304
1305 </td> <!-- entry_type -->
1306
1307 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001308 <p>Whether AE is currently locked to its latest
1309calculated values</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001310 </td>
1311
1312 <td class="entry_units">
1313 </td>
1314
1315 <td class="entry_range">
1316 </td>
1317
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001318 <td class="entry_tags">
1319 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001320 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001321 </ul>
1322 </td>
1323
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001324 </tr>
1325 <tr class="entries_header">
1326 <th class="th_details" colspan="5">Details</th>
1327 </tr>
1328 <tr class="entry_cont">
1329 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001330 <p>Note that even when AE is locked,<wbr/> the flash may be
1331fired if the AE mode is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/> ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/>
1332ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001333 </td>
1334 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001335
1336
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001337 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1338 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001339
1340
1341 <tr class="entry" id="controls_android.control.aeMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001342 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001343 android.<wbr/>control.<wbr/>ae<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001344 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001345 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001346 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001347
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001348 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001349
1350 <ul class="entry_type_enum">
1351 <li>
1352 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001353 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
1354the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1355<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
1356<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
1357device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
1358a flash unit for this camera device.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001359 </li>
1360 <li>
1361 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001362 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
1363with no flash control.<wbr/> The application's values for
1364<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1365<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1366<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
1367application has control over the various
1368android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001369 </li>
1370 <li>
1371 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001372 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1373the camera's flash unit,<wbr/> firing it in low-light
1374conditions.<wbr/> The flash may be fired during a
1375precapture sequence (triggered by
1376<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
1377for captures for which the
1378<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1379STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001380 </li>
1381 <li>
1382 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001383 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1384the camera's flash unit,<wbr/> always firing it for still
1385captures.<wbr/> The flash may be fired during a precapture
1386sequence (triggered by
1387<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
1388be fired for captures for which the
1389<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1390STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001391 </li>
1392 <li>
1393 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001394 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
1395reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
1396a red eye reduction flash will fire during the
1397precapture sequence.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001398 </li>
1399 </ul>
1400
1401 </td> <!-- entry_type -->
1402
1403 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08001404 <p>The desired mode for the camera device's
1405auto-exposure routine.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001406 </td>
1407
1408 <td class="entry_units">
1409 </td>
1410
1411 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001412 <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 -08001413 </td>
1414
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001415 <td class="entry_tags">
1416 <ul class="entry_tags">
1417 <li><a href="#tag_BC">BC</a></li>
1418 </ul>
1419 </td>
1420
1421 </tr>
1422 <tr class="entries_header">
1423 <th class="th_details" colspan="5">Details</th>
1424 </tr>
1425 <tr class="entry_cont">
1426 <td class="entry_details" colspan="5">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08001427 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
1428AUTO.<wbr/></p>
1429<p>When set to any of the ON modes,<wbr/> the camera device's
1430auto-exposure routine is enabled,<wbr/> overriding the
1431application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
1432and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1433<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1434<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
1435is selected,<wbr/> the camera device's flash unit controls are
1436also overridden.<wbr/></p>
1437<p>The FLASH modes are only available if the camera device
1438has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
1439<p>If flash TORCH mode is desired,<wbr/> this field must be set to
1440ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
1441<p>When set to any of the ON modes,<wbr/> the values chosen by the
1442camera device auto-exposure routine for the overridden
1443fields for a given capture will be available in its
1444CaptureResult.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001445 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001446 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001447
1448
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001449 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1450 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001451
1452
1453 <tr class="entry" id="controls_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001454 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001455 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001456 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001457 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001458 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001459 <span class="entry_type_container">x</span>
1460
1461 <span class="entry_type_array">
1462 5 x area_count
1463 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001464 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001465
1466
1467 </td> <!-- entry_type -->
1468
1469 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001470 <p>List of areas to use for
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001471metering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001472 </td>
1473
1474 <td class="entry_units">
1475 </td>
1476
1477 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001478 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[0]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001479 </td>
1480
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001481 <td class="entry_tags">
1482 <ul class="entry_tags">
1483 <li><a href="#tag_BC">BC</a></li>
1484 </ul>
1485 </td>
1486
1487 </tr>
1488 <tr class="entries_header">
1489 <th class="th_details" colspan="5">Details</th>
1490 </tr>
1491 <tr class="entry_cont">
1492 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001493 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001494xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08001495specified coordinates.<wbr/></p>
1496<p>The coordinate system is based on the active pixel array,<wbr/>
1497with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001498(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1499<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 -08001500bottom-right pixel in the active pixel array.<wbr/> The weight
1501should be nonnegative.<wbr/></p>
1502<p>If all regions have 0 weight,<wbr/> then no specific metering area
1503needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001504outside 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 -08001505should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001506used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001507 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001508 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001509
1510
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001511 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1512 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001513
1514
1515 <tr class="entry" id="controls_android.control.aeTargetFpsRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001516 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001517 android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001518 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001519 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001520 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001521 <span class="entry_type_container">x</span>
1522
1523 <span class="entry_type_array">
1524 2
1525 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001526 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001527
1528
1529 </td> <!-- entry_type -->
1530
1531 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001532 <p>Range over which fps can be adjusted to
1533maintain exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001534 </td>
1535
1536 <td class="entry_units">
1537 </td>
1538
1539 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001540 <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 -08001541 </td>
1542
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001543 <td class="entry_tags">
1544 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001545 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001546 </ul>
1547 </td>
1548
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001549 </tr>
1550 <tr class="entries_header">
1551 <th class="th_details" colspan="5">Details</th>
1552 </tr>
1553 <tr class="entry_cont">
1554 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001555 <p>Only constrains AE algorithm,<wbr/> not manual control
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001556of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001557 </td>
1558 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001559
1560
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001561 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1562 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001563
1564
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001565 <tr class="entry" id="controls_android.control.aePrecaptureTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001566 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001567 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001568 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001569 <td class="entry_type">
1570 <span class="entry_type_name entry_type_name_enum">byte</span>
1571
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001572 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001573
1574 <ul class="entry_type_enum">
1575 <li>
1576 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001577 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001578 </li>
1579 <li>
1580 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001581 <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
1582by the camera device.<wbr/> The exact effect of the precapture
1583trigger depends on the current AE mode and state.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001584 </li>
1585 </ul>
1586
1587 </td> <!-- entry_type -->
1588
1589 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001590 <p>Whether the camera device will trigger a precapture
1591metering sequence when it processes this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001592 </td>
1593
1594 <td class="entry_units">
1595 </td>
1596
1597 <td class="entry_range">
1598 </td>
1599
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001600 <td class="entry_tags">
1601 <ul class="entry_tags">
1602 <li><a href="#tag_BC">BC</a></li>
1603 </ul>
1604 </td>
1605
1606 </tr>
1607 <tr class="entries_header">
1608 <th class="th_details" colspan="5">Details</th>
1609 </tr>
1610 <tr class="entry_cont">
1611 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001612 <p>This entry is normally set to IDLE,<wbr/> or is not
1613included at all in the request settings.<wbr/> When included and
Zhijun He92e698d2014-01-13 16:24:31 -08001614set to START,<wbr/> the camera device will trigger the autoexposure
Igor Murashkin0b080452013-12-27 15:30:25 -08001615precapture metering sequence.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001616<p>The effect of AE precapture trigger depends on the current
Zhijun He92e698d2014-01-13 16:24:31 -08001617AE mode and state; see <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture
1618state transition details.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001619 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001620 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001621
1622
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001623 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1624 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001625
1626
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001627 <tr class="entry" id="controls_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001628 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001629 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001630 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001631 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001632 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001633
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001634 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001635
1636 <ul class="entry_type_enum">
1637 <li>
1638 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001639 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
1640<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
1641application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001642 </li>
1643 <li>
1644 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001645 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
1646<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
1647is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
1648the autofocus trigger action is called.<wbr/> When that trigger
1649is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
1650the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
1651<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
1652and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001653 </li>
1654 <li>
1655 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001656 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
1657autofocus trigger action is called.<wbr/></p>
1658<p>When that trigger is activated,<wbr/> AF must transition to
1659ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
1660NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
1661position to default,<wbr/> and sets the AF state to
1662INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001663 </li>
1664 <li>
1665 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001666 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1667position continually to attempt to provide a
1668constantly-in-focus image stream.<wbr/></p>
1669<p>The focusing behavior should be suitable for good quality
1670video recording; typically this means slower focus
1671movement and no overshoots.<wbr/> When the AF trigger is not
1672involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
1673and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
1674states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
1675the algorithm should immediately transition into
1676AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1677lens position until a cancel AF trigger is received.<wbr/></p>
1678<p>Once cancel is received,<wbr/> the algorithm should transition
1679back to INACTIVE and resume passive scan.<wbr/> Note that this
1680behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
1681ongoing PASSIVE_<wbr/>SCAN must immediately be
1682canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001683 </li>
1684 <li>
1685 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001686 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1687position continually to attempt to provide a
1688constantly-in-focus image stream.<wbr/></p>
1689<p>The focusing behavior should be suitable for still image
1690capture; typically this means focusing as fast as
1691possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
1692algorithm should start in INACTIVE state,<wbr/> and then
1693transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
1694appropriate as it attempts to maintain focus.<wbr/> When the AF
1695trigger is activated,<wbr/> the algorithm should finish its
1696PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
1697AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1698lens position until a cancel AF trigger is received.<wbr/></p>
1699<p>When the AF cancel trigger is activated,<wbr/> the algorithm
1700should transition back to INACTIVE and then act as if it
1701has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001702 </li>
1703 <li>
1704 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001705 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
1706trigger is ignored,<wbr/> AF state should always be
1707INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001708 </li>
1709 </ul>
1710
1711 </td> <!-- entry_type -->
1712
1713 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001714 <p>Whether AF is currently enabled,<wbr/> and what
1715mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001716 </td>
1717
1718 <td class="entry_units">
1719 </td>
1720
1721 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08001722 <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 -08001723 </td>
1724
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001725 <td class="entry_tags">
1726 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001727 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001728 </ul>
1729 </td>
1730
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001731 </tr>
1732 <tr class="entries_header">
1733 <th class="th_details" colspan="5">Details</th>
1734 </tr>
1735 <tr class="entry_cont">
1736 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001737 <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 -08001738<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
1739the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
1740in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001741 </td>
1742 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001743
1744
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001745 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1746 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001747
1748
1749 <tr class="entry" id="controls_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001750 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001751 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001752 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001753 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001754 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001755 <span class="entry_type_container">x</span>
1756
1757 <span class="entry_type_array">
1758 5 x area_count
1759 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001760 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001761
1762
1763 </td> <!-- entry_type -->
1764
1765 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001766 <p>List of areas to use for focus
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001767estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001768 </td>
1769
1770 <td class="entry_units">
1771 </td>
1772
1773 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001774 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[2]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001775 </td>
1776
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001777 <td class="entry_tags">
1778 <ul class="entry_tags">
1779 <li><a href="#tag_BC">BC</a></li>
1780 </ul>
1781 </td>
1782
1783 </tr>
1784 <tr class="entries_header">
1785 <th class="th_details" colspan="5">Details</th>
1786 </tr>
1787 <tr class="entry_cont">
1788 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001789 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001790xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08001791specified coordinates.<wbr/></p>
1792<p>The coordinate system is based on the active pixel array,<wbr/>
1793with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001794(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1795<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 -08001796bottom-right pixel in the active pixel array.<wbr/> The weight
1797should be nonnegative.<wbr/></p>
1798<p>If all regions have 0 weight,<wbr/> then no specific focus area
1799needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001800outside 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 -08001801should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001802used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001803 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001804 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001805
1806
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001807 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1808 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001809
1810
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001811 <tr class="entry" id="controls_android.control.afTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001812 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001813 android.<wbr/>control.<wbr/>af<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001814 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001815 <td class="entry_type">
1816 <span class="entry_type_name entry_type_name_enum">byte</span>
1817
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001818 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001819
1820 <ul class="entry_type_enum">
1821 <li>
1822 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001823 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001824 </li>
1825 <li>
1826 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001827 <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001828 </li>
1829 <li>
1830 <span class="entry_type_enum_name">CANCEL</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001831 <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
1832state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001833 </li>
1834 </ul>
1835
1836 </td> <!-- entry_type -->
1837
1838 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001839 <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001840 </td>
1841
1842 <td class="entry_units">
1843 </td>
1844
1845 <td class="entry_range">
1846 </td>
1847
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001848 <td class="entry_tags">
1849 <ul class="entry_tags">
1850 <li><a href="#tag_BC">BC</a></li>
1851 </ul>
1852 </td>
1853
1854 </tr>
1855 <tr class="entries_header">
1856 <th class="th_details" colspan="5">Details</th>
1857 </tr>
1858 <tr class="entry_cont">
1859 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001860 <p>This entry is normally set to IDLE,<wbr/> or is not
1861included at all in the request settings.<wbr/></p>
Zhijun He92e698d2014-01-13 16:24:31 -08001862<p>When included and set to START,<wbr/> the camera device will trigger the
1863autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
1864<p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
1865and return to its initial AF state.<wbr/></p>
1866<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 -07001867 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001868 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001869
1870
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001871 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1872 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001873
1874
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001875 <tr class="entry" id="controls_android.control.awbLock">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001876 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001877 android.<wbr/>control.<wbr/>awb<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001878 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001879 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001880 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001881
Igor Murashkinb8dc8812013-07-17 16:29:34 -07001882 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001883
1884 <ul class="entry_type_enum">
1885 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001886 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001887 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is disabled; the AWB
1888algorithm is free to update its parameters if in AUTO
1889mode.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001890 </li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001891 <li>
1892 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001893 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is enabled; the AWB
1894algorithm must not update the exposure and sensitivity
1895parameters while the lock is active</p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001896 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001897 </ul>
1898
1899 </td> <!-- entry_type -->
1900
1901 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001902 <p>Whether AWB is currently locked to its
1903latest calculated values</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001904 </td>
1905
1906 <td class="entry_units">
1907 </td>
1908
1909 <td class="entry_range">
1910 </td>
1911
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001912 <td class="entry_tags">
1913 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001914 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001915 </ul>
1916 </td>
1917
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001918 </tr>
1919 <tr class="entries_header">
1920 <th class="th_details" colspan="5">Details</th>
1921 </tr>
1922 <tr class="entry_cont">
1923 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001924 <p>Note that AWB lock is only meaningful for AUTO
1925mode; in other modes,<wbr/> AWB is already fixed to a specific
1926setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001927 </td>
1928 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001929
1930
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001931 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1932 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001933
1934
1935 <tr class="entry" id="controls_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001936 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001937 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001938 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001939 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001940 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001941
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001942 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001943
1944 <ul class="entry_type_enum">
1945 <li>
1946 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001947 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1948the application-selected color transform matrix
1949(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
1950(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
1951device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001952 </li>
1953 <li>
1954 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001955 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
1956the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
1957and <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 -08001958 </li>
1959 <li>
1960 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001961 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1962the camera device uses incandescent light as the assumed scene
1963illumination for white balance.<wbr/> While the exact white balance
1964transforms are up to the camera device,<wbr/> they will approximately
1965match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001966 </li>
1967 <li>
1968 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001969 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1970the camera device uses fluorescent light as the assumed scene
1971illumination for white balance.<wbr/> While the exact white balance
1972transforms are up to the camera device,<wbr/> they will approximately
1973match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001974 </li>
1975 <li>
1976 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001977 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1978the camera device uses warm fluorescent light as the assumed scene
1979illumination for white balance.<wbr/> While the exact white balance
1980transforms are up to the camera device,<wbr/> they will approximately
1981match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001982 </li>
1983 <li>
1984 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001985 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1986the camera device uses daylight light as the assumed scene
1987illumination for white balance.<wbr/> While the exact white balance
1988transforms are up to the camera device,<wbr/> they will approximately
1989match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001990 </li>
1991 <li>
1992 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001993 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1994the camera device uses cloudy daylight light as the assumed scene
1995illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001996 </li>
1997 <li>
1998 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001999 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2000the camera device uses twilight light as the assumed scene
2001illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002002 </li>
2003 <li>
2004 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002005 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2006the camera device uses shade light as the assumed scene
2007illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002008 </li>
2009 </ul>
2010
2011 </td> <!-- entry_type -->
2012
2013 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002014 <p>Whether AWB is currently setting the color
2015transform fields,<wbr/> and what its illumination target
2016is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002017 </td>
2018
2019 <td class="entry_units">
2020 </td>
2021
2022 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08002023 <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 -08002024 </td>
2025
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002026 <td class="entry_tags">
2027 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002028 <li><a href="#tag_BC">BC</a></li>
2029 <li><a href="#tag_AWB">AWB</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002030 </ul>
2031 </td>
2032
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002033 </tr>
2034 <tr class="entries_header">
2035 <th class="th_details" colspan="5">Details</th>
2036 </tr>
2037 <tr class="entry_cont">
2038 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08002039 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
2040<p>When set to the ON mode,<wbr/> the camera device's auto white balance
2041routine is enabled,<wbr/> overriding the application's selected
2042<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
2043<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2044<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
2045routine is disabled.<wbr/> The applicantion manually controls the white
2046balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
2047and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2048<p>When set to any other modes,<wbr/> the camera device's auto white balance
2049routine is disabled.<wbr/> The camera device uses each particular illumination
2050target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002051 </td>
2052 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002053
2054
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002055 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2056 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002057
2058
2059 <tr class="entry" id="controls_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002060 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002061 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002062 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002063 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002064 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002065 <span class="entry_type_container">x</span>
2066
2067 <span class="entry_type_array">
2068 5 x area_count
2069 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002070 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002071
2072
2073 </td> <!-- entry_type -->
2074
2075 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002076 <p>List of areas to use for illuminant
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002077estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002078 </td>
2079
2080 <td class="entry_units">
2081 </td>
2082
2083 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002084 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[1]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002085 </td>
2086
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002087 <td class="entry_tags">
2088 <ul class="entry_tags">
2089 <li><a href="#tag_BC">BC</a></li>
2090 </ul>
2091 </td>
2092
2093 </tr>
2094 <tr class="entries_header">
2095 <th class="th_details" colspan="5">Details</th>
2096 </tr>
2097 <tr class="entry_cont">
2098 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002099 <p>Only used in AUTO mode.<wbr/></p>
2100<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002101xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08002102specified coordinates.<wbr/></p>
2103<p>The coordinate system is based on the active pixel array,<wbr/>
2104with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002105(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
2106<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 -08002107bottom-right pixel in the active pixel array.<wbr/> The weight
2108should be nonnegative.<wbr/></p>
2109<p>If all regions have 0 weight,<wbr/> then no specific metering area
2110needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002111outside 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 -08002112should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002113used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002114 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002115 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002116
2117
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002118 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2119 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002120
2121
2122 <tr class="entry" id="controls_android.control.captureIntent">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002123 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002124 android.<wbr/>control.<wbr/>capture<wbr/>Intent
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002125 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002126 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002127 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002128
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002129 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002130
2131 <ul class="entry_type_enum">
2132 <li>
2133 <span class="entry_type_enum_name">CUSTOM</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002134 <span class="entry_type_enum_notes"><p>This request doesn't fall into the other
2135categories.<wbr/> Default to preview-like
2136behavior.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002137 </li>
2138 <li>
2139 <span class="entry_type_enum_name">PREVIEW</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002140 <span class="entry_type_enum_notes"><p>This request is for a preview-like usecase.<wbr/> The
2141precapture trigger may be used to start off a metering
2142w/<wbr/>flash sequence</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002143 </li>
2144 <li>
2145 <span class="entry_type_enum_name">STILL_CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002146 <span class="entry_type_enum_notes"><p>This request is for a still capture-type
2147usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002148 </li>
2149 <li>
2150 <span class="entry_type_enum_name">VIDEO_RECORD</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002151 <span class="entry_type_enum_notes"><p>This request is for a video recording
2152usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002153 </li>
2154 <li>
2155 <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002156 <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
2157image while recording video) usecase</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002158 </li>
2159 <li>
2160 <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002161 <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
2162application will stream full-resolution images and
2163reprocess one or several later for a final
2164capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002165 </li>
2166 </ul>
2167
2168 </td> <!-- entry_type -->
2169
2170 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08002171 <p>Information to the camera device 3A (auto-exposure,<wbr/>
2172auto-focus,<wbr/> auto-white balance) routines about the purpose
2173of this capture,<wbr/> to help the camera device to decide optimal 3A
2174strategy.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002175 </td>
2176
2177 <td class="entry_units">
2178 </td>
2179
2180 <td class="entry_range">
Zhijun Heea27bc32014-01-15 13:47:59 -08002181 <p>All must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002182 </td>
2183
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002184 <td class="entry_tags">
2185 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002186 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002187 </ul>
2188 </td>
2189
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002190 </tr>
2191 <tr class="entries_header">
2192 <th class="th_details" colspan="5">Details</th>
2193 </tr>
2194 <tr class="entry_cont">
2195 <td class="entry_details" colspan="5">
Zhijun Heea27bc32014-01-15 13:47:59 -08002196 <p>This control is only effective if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code>
2197and any 3A routine is active.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002198 </td>
2199 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002200
2201
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002202 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2203 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002204
2205
2206 <tr class="entry" id="controls_android.control.effectMode">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002207 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002208 android.<wbr/>control.<wbr/>effect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002209 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002210 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002211 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002212
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002213 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002214
2215 <ul class="entry_type_enum">
2216 <li>
2217 <span class="entry_type_enum_name">OFF</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002218 <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002219 </li>
2220 <li>
2221 <span class="entry_type_enum_name">MONO</span>
2222 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002223 <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
2224a single color.<wbr/> This will typically be grayscale.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002225 </li>
2226 <li>
2227 <span class="entry_type_enum_name">NEGATIVE</span>
2228 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002229 <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
2230are inverted.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002231 </li>
2232 <li>
2233 <span class="entry_type_enum_name">SOLARIZE</span>
2234 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002235 <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
2236image is wholly or partially reversed in
2237tone.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002238 </li>
2239 <li>
2240 <span class="entry_type_enum_name">SEPIA</span>
2241 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002242 <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
2243gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002244 </li>
2245 <li>
2246 <span class="entry_type_enum_name">POSTERIZE</span>
2247 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002248 <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
2249discrete regions of tone rather than a continuous
2250gradient of tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002251 </li>
2252 <li>
2253 <span class="entry_type_enum_name">WHITEBOARD</span>
2254 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002255 <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
2256as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002257 </li>
2258 <li>
2259 <span class="entry_type_enum_name">BLACKBOARD</span>
2260 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002261 <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
2262as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002263 </li>
2264 <li>
2265 <span class="entry_type_enum_name">AQUA</span>
2266 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002267 <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 -08002268 </li>
2269 </ul>
2270
2271 </td> <!-- entry_type -->
2272
2273 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002274 <p>A special color effect to apply.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002275 </td>
2276
2277 <td class="entry_units">
2278 </td>
2279
2280 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002281 <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002282 </td>
2283
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002284 <td class="entry_tags">
2285 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002286 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002287 </ul>
2288 </td>
2289
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002290 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002291 <tr class="entries_header">
2292 <th class="th_details" colspan="5">Details</th>
2293 </tr>
2294 <tr class="entry_cont">
2295 <td class="entry_details" colspan="5">
2296 <p>When this mode is set,<wbr/> a color effect will be applied
2297to images produced by the camera device.<wbr/> The interpretation
2298and implementation of these color effects is left to the
2299implementor of the camera device,<wbr/> and should not be
2300depended on to be consistent (or present) across all
2301devices.<wbr/></p>
2302<p>A color effect will only be applied if
2303<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2304 </td>
2305 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002306
2307
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002308 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2309 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002310
2311
2312 <tr class="entry" id="controls_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002313 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002314 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002315 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002316 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002317 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002318
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002319 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002320
2321 <ul class="entry_type_enum">
2322 <li>
2323 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002324 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
2325routines are disabled,<wbr/> no other settings in
2326android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002327 </li>
2328 <li>
2329 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002330 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
2331Manual control of capture parameters is disabled.<wbr/> All
2332controls in android.<wbr/>control.<wbr/>* besides sceneMode take
2333effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002334 </li>
2335 <li>
2336 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002337 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
2338control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
2339controls; the HAL must ignore those settings while
2340USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
2341scene mode).<wbr/> Other control entries are still active.<wbr/>
2342This setting can only be used if availableSceneModes !=
2343UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002344 </li>
2345 </ul>
2346
2347 </td> <!-- entry_type -->
2348
2349 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002350 <p>Overall mode of 3A control
2351routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002352 </td>
2353
2354 <td class="entry_units">
2355 </td>
2356
2357 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002358 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002359 </td>
2360
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002361 <td class="entry_tags">
2362 <ul class="entry_tags">
2363 <li><a href="#tag_BC">BC</a></li>
2364 </ul>
2365 </td>
2366
2367 </tr>
2368 <tr class="entries_header">
2369 <th class="th_details" colspan="5">Details</th>
2370 </tr>
2371 <tr class="entry_cont">
2372 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002373 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002374by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08002375capture parameters itself.<wbr/></p>
2376<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002377android.<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 -08002378<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002379android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08002380one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002381as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002382<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 -08002383 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002384 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002385
2386
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002387 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2388 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002389
2390
2391 <tr class="entry" id="controls_android.control.sceneMode">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002392 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002393 android.<wbr/>control.<wbr/>scene<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002394 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002395 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002396 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002397
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002398 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002399
2400 <ul class="entry_type_enum">
2401 <li>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002402 <span class="entry_type_enum_name">DISABLED</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002403 <span class="entry_type_enum_value">0</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002404 <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 -08002405 </li>
2406 <li>
2407 <span class="entry_type_enum_name">FACE_PRIORITY</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002408 <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
2409detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
2410auto-exposure routines.<wbr/> If face detection statistics are
2411disabled (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/>
2412this should still operate correctly (but will not return
2413face detection statistics to the framework).<wbr/></p>
2414<p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2415<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and android.<wbr/>control.<wbr/>af<wbr/>Mode
2416remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002417 </li>
2418 <li>
2419 <span class="entry_type_enum_name">ACTION</span>
2420 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002421 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/>
2422Similar to SPORTS.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002423 </li>
2424 <li>
2425 <span class="entry_type_enum_name">PORTRAIT</span>
2426 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002427 <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002428 </li>
2429 <li>
2430 <span class="entry_type_enum_name">LANDSCAPE</span>
2431 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002432 <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002433 </li>
2434 <li>
2435 <span class="entry_type_enum_name">NIGHT</span>
2436 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002437 <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002438 </li>
2439 <li>
2440 <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
2441 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002442 <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
2443settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002444 </li>
2445 <li>
2446 <span class="entry_type_enum_name">THEATRE</span>
2447 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002448 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
2449remain off.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002450 </li>
2451 <li>
2452 <span class="entry_type_enum_name">BEACH</span>
2453 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002454 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002455 </li>
2456 <li>
2457 <span class="entry_type_enum_name">SNOW</span>
2458 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002459 <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 -08002460 </li>
2461 <li>
2462 <span class="entry_type_enum_name">SUNSET</span>
2463 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002464 <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002465 </li>
2466 <li>
2467 <span class="entry_type_enum_name">STEADYPHOTO</span>
2468 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002469 <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
2470device motion (for example: due to hand shake).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002471 </li>
2472 <li>
2473 <span class="entry_type_enum_name">FIREWORKS</span>
2474 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002475 <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002476 </li>
2477 <li>
2478 <span class="entry_type_enum_name">SPORTS</span>
2479 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002480 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/>
2481Similar to ACTION.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002482 </li>
2483 <li>
2484 <span class="entry_type_enum_name">PARTY</span>
2485 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002486 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
2487people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002488 </li>
2489 <li>
2490 <span class="entry_type_enum_name">CANDLELIGHT</span>
2491 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002492 <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
2493is a flame.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002494 </li>
2495 <li>
2496 <span class="entry_type_enum_name">BARCODE</span>
2497 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002498 <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
2499for use by camera applications that wish to read the
2500barcode value.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002501 </li>
2502 </ul>
2503
2504 </td> <!-- entry_type -->
2505
2506 <td class="entry_description">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002507 <p>A camera mode optimized for conditions typical in a particular
2508capture setting.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002509 </td>
2510
2511 <td class="entry_units">
2512 </td>
2513
2514 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002515 <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 -08002516 </td>
2517
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002518 <td class="entry_tags">
2519 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002520 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002521 </ul>
2522 </td>
2523
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002524 </tr>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002525 <tr class="entries_header">
2526 <th class="th_details" colspan="5">Details</th>
2527 </tr>
2528 <tr class="entry_cont">
2529 <td class="entry_details" colspan="5">
2530 <p>This is the mode that that is active when
2531<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/>
2532these modes will disable <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2533<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>
2534<p>The interpretation and implementation of these scene modes is left
2535to the implementor of the camera device.<wbr/> Their behavior will not be
2536consistent across all devices,<wbr/> and any given device may only implement
2537a subset of these modes.<wbr/></p>
2538 </td>
2539 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002540
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002541 <tr class="entries_header">
2542 <th class="th_details" colspan="5">HAL Implementation Details</th>
2543 </tr>
2544 <tr class="entry_cont">
2545 <td class="entry_details" colspan="5">
2546 <p>HAL implementations that include scene modes are expected to provide
2547the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2548<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
2549<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
2550 </td>
2551 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002552
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002553 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2554 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002555
2556
2557 <tr class="entry" id="controls_android.control.videoStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002558 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002559 android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002560 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002561 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002562 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002563
Igor Murashkinb8dc8812013-07-17 16:29:34 -07002564 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002565
2566 <ul class="entry_type_enum">
2567 <li>
2568 <span class="entry_type_enum_name">OFF</span>
2569 </li>
2570 <li>
2571 <span class="entry_type_enum_name">ON</span>
2572 </li>
2573 </ul>
2574
2575 </td> <!-- entry_type -->
2576
2577 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002578 <p>Whether video stabilization is
2579active</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002580 </td>
2581
2582 <td class="entry_units">
2583 </td>
2584
2585 <td class="entry_range">
2586 </td>
2587
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002588 <td class="entry_tags">
2589 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002590 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002591 </ul>
2592 </td>
2593
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002594 </tr>
2595 <tr class="entries_header">
2596 <th class="th_details" colspan="5">Details</th>
2597 </tr>
2598 <tr class="entry_cont">
2599 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002600 <p>If enabled,<wbr/> video stabilization can modify the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002601<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 -08002602stabilized</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002603 </td>
2604 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002605
2606
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002607 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2608 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002609
2610
2611
2612 <!-- end of kind -->
2613 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002614 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002615
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002616 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002617 <tr>
2618 <th class="th_name">Property Name</th>
2619 <th class="th_type">Type</th>
2620 <th class="th_description">Description</th>
2621 <th class="th_units">Units</th>
2622 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002623 <th class="th_tags">Tags</th>
2624 </tr>
2625 </thead>
2626
2627 <tbody>
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638 <tr class="entry" id="static_android.control.aeAvailableAntibandingModes">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002639 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002640 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002641 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002642 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002643 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002644 <span class="entry_type_container">x</span>
2645
2646 <span class="entry_type_array">
2647 n
2648 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002649 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002650 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002651
2652
2653 </td> <!-- entry_type -->
2654
2655 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002656 <p>The set of auto-exposure antibanding modes that are
2657supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002658 </td>
2659
2660 <td class="entry_units">
2661 </td>
2662
2663 <td class="entry_range">
2664 </td>
2665
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002666 <td class="entry_tags">
2667 </td>
2668
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002669 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002670 <tr class="entries_header">
2671 <th class="th_details" colspan="5">Details</th>
2672 </tr>
2673 <tr class="entry_cont">
2674 <td class="entry_details" colspan="5">
2675 <p>Not all of the auto-exposure anti-banding modes may be
2676supported by a given camera device.<wbr/> This field lists the
2677valid anti-banding modes that the application may request
2678for this camera device; they must include AUTO.<wbr/></p>
2679 </td>
2680 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002681
2682
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002683 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2684 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002685
2686
2687 <tr class="entry" id="static_android.control.aeAvailableModes">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002688 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002689 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002690 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002691 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002692 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002693 <span class="entry_type_container">x</span>
2694
2695 <span class="entry_type_array">
2696 n
2697 </span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002698 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002699 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002700
2701
2702 </td> <!-- entry_type -->
2703
2704 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002705 <p>The set of auto-exposure modes that are supported by this
2706camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002707 </td>
2708
2709 <td class="entry_units">
2710 </td>
2711
2712 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002713 </td>
2714
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002715 <td class="entry_tags">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002716 <ul class="entry_tags">
2717 <li><a href="#tag_BC">BC</a></li>
2718 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002719 </td>
2720
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002721 </tr>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002722 <tr class="entries_header">
2723 <th class="th_details" colspan="5">Details</th>
2724 </tr>
2725 <tr class="entry_cont">
2726 <td class="entry_details" colspan="5">
2727 <p>Not all the auto-exposure modes may be supported by a
2728given camera device,<wbr/> especially if no flash unit is
2729available.<wbr/> This entry lists the valid modes for
2730<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> for this camera device.<wbr/></p>
2731<p>All camera devices support ON,<wbr/> and all camera devices with
2732flash units support ON_<wbr/>AUTO_<wbr/>FLASH and
2733ON_<wbr/>ALWAYS_<wbr/>FLASH.<wbr/></p>
2734<p>Full-capability camera devices always support OFF mode,<wbr/>
2735which enables application control of camera exposure time,<wbr/>
2736sensitivity,<wbr/> and frame duration.<wbr/></p>
2737 </td>
2738 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002739
2740
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002741 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2742 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002743
2744
2745 <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002746 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002747 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002748 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002749 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002750 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002751 <span class="entry_type_container">x</span>
2752
2753 <span class="entry_type_array">
2754 2 x n
2755 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002756 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002757 <div class="entry_type_notes">list of pairs of frame rates</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002758
2759
2760 </td> <!-- entry_type -->
2761
2762 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002763 <p>List of frame rate ranges supported by the
2764AE algorithm/<wbr/>hardware</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002765 </td>
2766
2767 <td class="entry_units">
2768 </td>
2769
2770 <td class="entry_range">
2771 </td>
2772
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002773 <td class="entry_tags">
2774 </td>
2775
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002776 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002777
2778
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002779 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2780 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002781
2782
2783 <tr class="entry" id="static_android.control.aeCompensationRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002784 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002785 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002786 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002787 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002788 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002789 <span class="entry_type_container">x</span>
2790
2791 <span class="entry_type_array">
2792 2
2793 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002794 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002795
2796
2797 </td> <!-- entry_type -->
2798
2799 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002800 <p>Maximum and minimum exposure compensation
2801setting,<wbr/> in counts of
2802android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step<wbr/>Size</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002803 </td>
2804
2805 <td class="entry_units">
2806 </td>
2807
2808 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002809 <p>At least (-2,<wbr/>2)/<wbr/>(exp compensation step
2810size)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002811 </td>
2812
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002813 <td class="entry_tags">
2814 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002815 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002816 </ul>
2817 </td>
2818
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002819 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002820
2821
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002822 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2823 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002824
2825
2826 <tr class="entry" id="static_android.control.aeCompensationStep">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002827 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002828 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002829 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002830 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002831 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002832
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002833 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002834
2835
2836 </td> <!-- entry_type -->
2837
2838 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002839 <p>Smallest step by which exposure compensation
2840can be changed</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002841 </td>
2842
2843 <td class="entry_units">
2844 </td>
2845
2846 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002847 <p>&lt;= 1/<wbr/>2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002848 </td>
2849
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002850 <td class="entry_tags">
2851 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002852 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002853 </ul>
2854 </td>
2855
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002856 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002857
2858
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002859 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2860 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002861
2862
2863 <tr class="entry" id="static_android.control.afAvailableModes">
Zhijun Hef163fa92014-01-14 09:59:04 -08002864 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002865 android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002866 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002867 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002868 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002869 <span class="entry_type_container">x</span>
2870
2871 <span class="entry_type_array">
2872 n
2873 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002874 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002875 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002876
2877
2878 </td> <!-- entry_type -->
2879
2880 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002881 <p>List of AF modes that can be
Zhijun Hef163fa92014-01-14 09:59:04 -08002882selected with <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002883 </td>
2884
2885 <td class="entry_units">
2886 </td>
2887
2888 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002889 </td>
2890
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002891 <td class="entry_tags">
2892 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002893 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002894 </ul>
2895 </td>
2896
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002897 </tr>
Zhijun Hef163fa92014-01-14 09:59:04 -08002898 <tr class="entries_header">
2899 <th class="th_details" colspan="5">Details</th>
2900 </tr>
2901 <tr class="entry_cont">
2902 <td class="entry_details" colspan="5">
2903 <p>Not all the auto-focus modes may be supported by a
2904given camera device.<wbr/> This entry lists the valid modes for
2905<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> for this camera device.<wbr/></p>
2906<p>All camera devices will support OFF mode,<wbr/> and all camera devices with
2907adjustable 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>)
2908will support AUTO mode.<wbr/></p>
2909 </td>
2910 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002911
2912
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002913 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2914 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002915
2916
2917 <tr class="entry" id="static_android.control.availableEffects">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002918 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002919 android.<wbr/>control.<wbr/>available<wbr/>Effects
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002920 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002921 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002922 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002923 <span class="entry_type_container">x</span>
2924
2925 <span class="entry_type_array">
2926 n
2927 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002928 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002929 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>effect<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002930
2931
2932 </td> <!-- entry_type -->
2933
2934 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002935 <p>List containing the subset of color effects
2936specified in <a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a> that is supported by
2937this device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002938 </td>
2939
2940 <td class="entry_units">
2941 </td>
2942
2943 <td class="entry_range">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002944 <p>Any subset of enums from those specified in
2945<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 -08002946 </td>
2947
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002948 <td class="entry_tags">
2949 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002950 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002951 </ul>
2952 </td>
2953
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002954 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002955 <tr class="entries_header">
2956 <th class="th_details" colspan="5">Details</th>
2957 </tr>
2958 <tr class="entry_cont">
2959 <td class="entry_details" colspan="5">
2960 <p>This list contains the color effect modes that can be applied to
2961images produced by the camera device.<wbr/> Only modes that have
2962been fully implemented for the current device may be included here.<wbr/>
2963Implementations are not expected to be consistent across all devices.<wbr/>
2964If no color effect modes are available for a device,<wbr/> this should
2965simply be set to OFF.<wbr/></p>
2966<p>A color effect will only be applied if
2967<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2968 </td>
2969 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002970
2971
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002972 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2973 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002974
2975
2976 <tr class="entry" id="static_android.control.availableSceneModes">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002977 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002978 android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002979 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002980 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002981 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002982 <span class="entry_type_container">x</span>
2983
2984 <span class="entry_type_array">
2985 n
2986 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002987 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002988 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>scene<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002989
2990
2991 </td> <!-- entry_type -->
2992
2993 <td class="entry_description">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002994 <p>List containing a subset of scene modes
2995specified in <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002996 </td>
2997
2998 <td class="entry_units">
2999 </td>
3000
3001 <td class="entry_range">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003002 <p>Any subset of the enums specified in android.<wbr/>control.<wbr/>scene<wbr/>Mode
3003not including DISABLED,<wbr/> or solely DISABLED if no
3004scene modes are available.<wbr/> FACE_<wbr/>PRIORITY must be included
3005if 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 -08003006 </td>
3007
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003008 <td class="entry_tags">
3009 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003010 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003011 </ul>
3012 </td>
3013
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003014 </tr>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003015 <tr class="entries_header">
3016 <th class="th_details" colspan="5">Details</th>
3017 </tr>
3018 <tr class="entry_cont">
3019 <td class="entry_details" colspan="5">
3020 <p>This list contains scene modes that can be set for the camera device.<wbr/>
3021Only scene modes that have been fully implemented for the
3022camera device may be included here.<wbr/> Implementations are not expected
3023to be consistent across all devices.<wbr/> If no scene modes are supported
3024by the camera device,<wbr/> this will be set to <code>[DISABLED]</code>.<wbr/></p>
3025 </td>
3026 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003027
3028
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003029 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3030 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003031
3032
3033 <tr class="entry" id="static_android.control.availableVideoStabilizationModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003034 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003035 android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003036 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003037 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003038 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003039 <span class="entry_type_container">x</span>
3040
3041 <span class="entry_type_array">
3042 n
3043 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003044 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08003045 <div class="entry_type_notes">List of enums.<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003046
3047
3048 </td> <!-- entry_type -->
3049
3050 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003051 <p>List of video stabilization modes that can
3052be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003053 </td>
3054
3055 <td class="entry_units">
3056 </td>
3057
3058 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003059 <p>OFF must be included</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003060 </td>
3061
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003062 <td class="entry_tags">
3063 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003064 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003065 </ul>
3066 </td>
3067
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003068 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003069
3070
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003071 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3072 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003073
3074
3075 <tr class="entry" id="static_android.control.awbAvailableModes">
Zhijun He7787f7f2014-01-14 16:30:31 -08003076 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003077 android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003078 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003079 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003080 <span class="entry_type_name">byte</span>
Alex Raya4251d92013-04-30 16:43:44 -07003081 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003082
Alex Raya4251d92013-04-30 16:43:44 -07003083 <span class="entry_type_array">
3084 n
3085 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003086 <span class="entry_type_visibility"> [public]</span>
Zhijun He7787f7f2014-01-14 16:30:31 -08003087 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003088
3089
3090 </td> <!-- entry_type -->
3091
3092 <td class="entry_description">
Zhijun He7787f7f2014-01-14 16:30:31 -08003093 <p>The set of auto-white-balance modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>)
3094that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003095 </td>
3096
3097 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003098 </td>
3099
3100 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003101 </td>
3102
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003103 <td class="entry_tags">
3104 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003105 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003106 </ul>
3107 </td>
3108
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003109 </tr>
Zhijun He7787f7f2014-01-14 16:30:31 -08003110 <tr class="entries_header">
3111 <th class="th_details" colspan="5">Details</th>
3112 </tr>
3113 <tr class="entry_cont">
3114 <td class="entry_details" colspan="5">
3115 <p>Not all the auto-white-balance modes may be supported by a
3116given camera device.<wbr/> This entry lists the valid modes for
3117<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> for this camera device.<wbr/></p>
3118<p>All camera devices will support ON mode.<wbr/></p>
3119<p>Full-capability camera devices will always support OFF mode,<wbr/>
3120which enables application control of white balance,<wbr/> by using
3121<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>
3122 </td>
3123 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003124
3125
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003126 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3127 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003128
3129
3130 <tr class="entry" id="static_android.control.maxRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003131 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003132 android.<wbr/>control.<wbr/>max<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003133 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003134 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003135 <span class="entry_type_name">int32</span>
Ruben Brunk120eea42014-01-15 15:55:08 -08003136 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003137
Ruben Brunk120eea42014-01-15 15:55:08 -08003138 <span class="entry_type_array">
3139 3
3140 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003141 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003142
3143
3144 </td> <!-- entry_type -->
3145
3146 <td class="entry_description">
Ruben Brunk120eea42014-01-15 15:55:08 -08003147 <p>List of the maximum number of regions that can be used for metering in
3148auto-exposure (AE),<wbr/> auto-white balance (AWB),<wbr/> and auto-focus (AF);
3149this corresponds to the the maximum number of elements in
3150<a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a>,<wbr/> <a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a>,<wbr/>
3151and <a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003152 </td>
3153
3154 <td class="entry_units">
3155 </td>
3156
3157 <td class="entry_range">
Ruben Brunk120eea42014-01-15 15:55:08 -08003158 <p>Value must be &gt;= 0 for each element.<wbr/> For full-capability devices
3159this value must be &gt;= 1 for AE and AF.<wbr/> The order of the elements is:
3160<code>(AE,<wbr/> AWB,<wbr/> AF)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003161 </td>
3162
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003163 <td class="entry_tags">
3164 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003165 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003166 </ul>
3167 </td>
3168
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003169 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003170
3171
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003172 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3173 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003174
3175
3176 <tr class="entry" id="static_android.control.sceneModeOverrides">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003177 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003178 android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003179 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003180 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003181 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003182 <span class="entry_type_container">x</span>
3183
3184 <span class="entry_type_array">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003185 3 x length(availableSceneModes)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003186 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003187 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003188
3189
3190 </td> <!-- entry_type -->
3191
3192 <td class="entry_description">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003193 <p>Ordered list of auto-exposure,<wbr/> auto-white balance,<wbr/> and auto-focus
3194settings to use with each available scene mode.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003195 </td>
3196
3197 <td class="entry_units">
3198 </td>
3199
3200 <td class="entry_range">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003201 <p>For each available scene mode,<wbr/> the list must contain three
3202entries containing the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3203<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
3204by the camera device.<wbr/> The entry order is <code>(aeMode,<wbr/> awbMode,<wbr/> afMode)</code>
3205where aeMode has the lowest index position.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003206 </td>
3207
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003208 <td class="entry_tags">
3209 <ul class="entry_tags">
3210 <li><a href="#tag_BC">BC</a></li>
3211 </ul>
3212 </td>
3213
3214 </tr>
3215 <tr class="entries_header">
3216 <th class="th_details" colspan="5">Details</th>
3217 </tr>
3218 <tr class="entry_cont">
3219 <td class="entry_details" colspan="5">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003220 <p>When a scene mode is enabled,<wbr/> the camera device is expected
3221to 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/>
3222and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> with its preferred settings for
3223that scene mode.<wbr/></p>
3224<p>The order of this list matches that of availableSceneModes,<wbr/>
3225with 3 entries for each mode.<wbr/> The overrides listed
3226for FACE_<wbr/>PRIORITY are ignored,<wbr/> since for that
3227mode the application-set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3228<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
3229used instead,<wbr/> matching the behavior when android.<wbr/>control.<wbr/>mode
3230is set to AUTO.<wbr/> It is recommended that the FACE_<wbr/>PRIORITY
3231overrides should be set to 0.<wbr/></p>
3232<p>For example,<wbr/> if availableSceneModes contains
3233<code>(FACE_<wbr/>PRIORITY,<wbr/> ACTION,<wbr/> NIGHT)</code>,<wbr/> then the camera framework
3234expects sceneModeOverrides to have 9 entries formatted like:
3235<code>(0,<wbr/> 0,<wbr/> 0,<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> AUTO,<wbr/> CONTINUOUS_<wbr/>PICTURE,<wbr/>
3236ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> INCANDESCENT,<wbr/> AUTO)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003237 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003238 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003239
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003240 <tr class="entries_header">
3241 <th class="th_details" colspan="5">HAL Implementation Details</th>
3242 </tr>
3243 <tr class="entry_cont">
3244 <td class="entry_details" colspan="5">
3245 <p>To maintain backward compatibility,<wbr/> this list will be made available
3246in the static metadata of the camera service.<wbr/> The camera service will
3247use these values to set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3248<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
3249mode other than FACE_<wbr/>PRIORITY.<wbr/></p>
3250 </td>
3251 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003252
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003253 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3254 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003255
3256
3257
3258 <!-- end of kind -->
3259 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003260 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003261
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003262 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003263 <tr>
3264 <th class="th_name">Property Name</th>
3265 <th class="th_type">Type</th>
3266 <th class="th_description">Description</th>
3267 <th class="th_units">Units</th>
3268 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003269 <th class="th_tags">Tags</th>
3270 </tr>
3271 </thead>
3272
3273 <tbody>
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284 <tr class="entry" id="dynamic_android.control.aePrecaptureId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003285 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003286 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003287 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003288 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003289 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003290
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003291 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003292
3293
3294 </td> <!-- entry_type -->
3295
3296 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003297 <p>The ID sent with the latest
3298CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003299 </td>
3300
3301 <td class="entry_units">
3302 </td>
3303
3304 <td class="entry_range">
Zhijun He7391bb62014-02-05 00:09:04 -08003305 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003306 </td>
3307
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003308 <td class="entry_tags">
3309 </td>
3310
3311 </tr>
3312 <tr class="entries_header">
3313 <th class="th_details" colspan="5">Details</th>
3314 </tr>
3315 <tr class="entry_cont">
3316 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003317 <p>Must be 0 if no
3318CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING trigger received yet
3319by HAL.<wbr/> Always updated even if AE algorithm ignores the
3320trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003321 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003322 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003323
3324
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003325 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3326 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003327
3328
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003329 <tr class="entry" id="dynamic_android.control.aeMode">
3330 <td class="entry_name" rowspan="3">
3331 android.<wbr/>control.<wbr/>ae<wbr/>Mode
3332 </td>
3333 <td class="entry_type">
3334 <span class="entry_type_name entry_type_name_enum">byte</span>
3335
3336 <span class="entry_type_visibility"> [public]</span>
3337
3338 <ul class="entry_type_enum">
3339 <li>
3340 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003341 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
3342the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3343<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
3344<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
3345device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
3346a flash unit for this camera device.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003347 </li>
3348 <li>
3349 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003350 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
3351with no flash control.<wbr/> The application's values for
3352<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3353<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3354<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
3355application has control over the various
3356android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003357 </li>
3358 <li>
3359 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003360 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3361the camera's flash unit,<wbr/> firing it in low-light
3362conditions.<wbr/> The flash may be fired during a
3363precapture sequence (triggered by
3364<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
3365for captures for which the
3366<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3367STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003368 </li>
3369 <li>
3370 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003371 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3372the camera's flash unit,<wbr/> always firing it for still
3373captures.<wbr/> The flash may be fired during a precapture
3374sequence (triggered by
3375<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
3376be fired for captures for which the
3377<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3378STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003379 </li>
3380 <li>
3381 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003382 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
3383reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
3384a red eye reduction flash will fire during the
3385precapture sequence.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003386 </li>
3387 </ul>
3388
3389 </td> <!-- entry_type -->
3390
3391 <td class="entry_description">
3392 <p>The desired mode for the camera device's
3393auto-exposure routine.<wbr/></p>
3394 </td>
3395
3396 <td class="entry_units">
3397 </td>
3398
3399 <td class="entry_range">
3400 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
3401 </td>
3402
3403 <td class="entry_tags">
3404 <ul class="entry_tags">
3405 <li><a href="#tag_BC">BC</a></li>
3406 </ul>
3407 </td>
3408
3409 </tr>
3410 <tr class="entries_header">
3411 <th class="th_details" colspan="5">Details</th>
3412 </tr>
3413 <tr class="entry_cont">
3414 <td class="entry_details" colspan="5">
3415 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
3416AUTO.<wbr/></p>
3417<p>When set to any of the ON modes,<wbr/> the camera device's
3418auto-exposure routine is enabled,<wbr/> overriding the
3419application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
3420and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3421<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3422<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
3423is selected,<wbr/> the camera device's flash unit controls are
3424also overridden.<wbr/></p>
3425<p>The FLASH modes are only available if the camera device
3426has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
3427<p>If flash TORCH mode is desired,<wbr/> this field must be set to
3428ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
3429<p>When set to any of the ON modes,<wbr/> the values chosen by the
3430camera device auto-exposure routine for the overridden
3431fields for a given capture will be available in its
3432CaptureResult.<wbr/></p>
3433 </td>
3434 </tr>
3435
3436
3437 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3438 <!-- end of entry -->
3439
3440
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003441 <tr class="entry" id="dynamic_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003442 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003443 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003444 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003445 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003446 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003447 <span class="entry_type_container">x</span>
3448
3449 <span class="entry_type_array">
3450 5 x area_count
3451 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003452 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003453
3454
3455 </td> <!-- entry_type -->
3456
3457 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003458 <p>List of areas to use for
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003459metering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003460 </td>
3461
3462 <td class="entry_units">
3463 </td>
3464
3465 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003466 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[0]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003467 </td>
3468
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003469 <td class="entry_tags">
3470 <ul class="entry_tags">
3471 <li><a href="#tag_BC">BC</a></li>
3472 </ul>
3473 </td>
3474
3475 </tr>
3476 <tr class="entries_header">
3477 <th class="th_details" colspan="5">Details</th>
3478 </tr>
3479 <tr class="entry_cont">
3480 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003481 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003482xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08003483specified coordinates.<wbr/></p>
3484<p>The coordinate system is based on the active pixel array,<wbr/>
3485with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003486(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3487<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 -08003488bottom-right pixel in the active pixel array.<wbr/> The weight
3489should be nonnegative.<wbr/></p>
3490<p>If all regions have 0 weight,<wbr/> then no specific metering area
3491needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003492outside 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 -08003493should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003494used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003495 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003496 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003497
3498
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003499 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3500 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003501
3502
3503 <tr class="entry" id="dynamic_android.control.aeState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003504 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003505 android.<wbr/>control.<wbr/>ae<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003506 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003507 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003508 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003509
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003510 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003511
3512 <ul class="entry_type_enum">
3513 <li>
3514 <span class="entry_type_enum_name">INACTIVE</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003515 <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 -08003516this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003517 </li>
3518 <li>
3519 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003520 <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 -08003521for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003522 </li>
3523 <li>
3524 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003525 <span class="entry_type_enum_notes"><p>AE has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08003526current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003527 </li>
3528 <li>
3529 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003530 <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003531 </li>
3532 <li>
3533 <span class="entry_type_enum_name">FLASH_REQUIRED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003534 <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
3535needs to be fired for good quality still
Zhijun He92e698d2014-01-13 16:24:31 -08003536capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003537 </li>
3538 <li>
3539 <span class="entry_type_enum_name">PRECAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003540 <span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence
Zhijun He92e698d2014-01-13 16:24:31 -08003541(through the <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> START),<wbr/>
3542and is currently executing it.<wbr/> Once PRECAPTURE
Igor Murashkina10351a2014-01-15 17:05:22 -08003543completes,<wbr/> AE will transition to CONVERGED or
Zhijun He92e698d2014-01-13 16:24:31 -08003544FLASH_<wbr/>REQUIRED as appropriate.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003545 </li>
3546 </ul>
3547
3548 </td> <!-- entry_type -->
3549
3550 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003551 <p>Current state of AE algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003552 </td>
3553
3554 <td class="entry_units">
3555 </td>
3556
3557 <td class="entry_range">
3558 </td>
3559
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003560 <td class="entry_tags">
3561 </td>
3562
3563 </tr>
3564 <tr class="entries_header">
3565 <th class="th_details" colspan="5">Details</th>
3566 </tr>
3567 <tr class="entry_cont">
3568 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003569 <p>Switching between or enabling AE modes (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>) always
3570resets the AE state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3571or <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
3572the algorithm states to INACTIVE.<wbr/></p>
3573<p>The camera device can do several state transitions between two results,<wbr/> if it is
3574allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3575seen in a result.<wbr/></p>
3576<p>The state in the result is the state for this image (in sync with this image): if
3577AE state becomes CONVERGED,<wbr/> then the image data associated with this result should
3578be good to use.<wbr/></p>
3579<p>Below are state transition tables for different AE modes.<wbr/></p>
3580<table>
3581<thead>
3582<tr>
3583<th align="center">State</th>
3584<th align="center">Transition Cause</th>
3585<th align="center">New State</th>
3586<th align="center">Notes</th>
3587</tr>
3588</thead>
3589<tbody>
3590<tr>
3591<td align="center">INACTIVE</td>
3592<td align="center"></td>
3593<td align="center">INACTIVE</td>
3594<td align="center">Camera device auto exposure algorithm is disabled</td>
3595</tr>
3596</tbody>
3597</table>
3598<p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON_<wbr/>*:</p>
3599<table>
3600<thead>
3601<tr>
3602<th align="center">State</th>
3603<th align="center">Transition Cause</th>
3604<th align="center">New State</th>
3605<th align="center">Notes</th>
3606</tr>
3607</thead>
3608<tbody>
3609<tr>
3610<td align="center">INACTIVE</td>
3611<td align="center">Camera device initiates AE scan</td>
3612<td align="center">SEARCHING</td>
3613<td align="center">Values changing</td>
3614</tr>
3615<tr>
3616<td align="center">INACTIVE</td>
3617<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3618<td align="center">LOCKED</td>
3619<td align="center">Values locked</td>
3620</tr>
3621<tr>
3622<td align="center">SEARCHING</td>
3623<td align="center">Camera device finishes AE scan</td>
3624<td align="center">CONVERGED</td>
3625<td align="center">Good values,<wbr/> not changing</td>
3626</tr>
3627<tr>
3628<td align="center">SEARCHING</td>
3629<td align="center">Camera device finishes AE scan</td>
3630<td align="center">FLASH_<wbr/>REQUIRED</td>
3631<td align="center">Converged but too dark w/<wbr/>o flash</td>
3632</tr>
3633<tr>
3634<td align="center">SEARCHING</td>
3635<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3636<td align="center">LOCKED</td>
3637<td align="center">Values locked</td>
3638</tr>
3639<tr>
3640<td align="center">CONVERGED</td>
3641<td align="center">Camera device initiates AE scan</td>
3642<td align="center">SEARCHING</td>
3643<td align="center">Values changing</td>
3644</tr>
3645<tr>
3646<td align="center">CONVERGED</td>
3647<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3648<td align="center">LOCKED</td>
3649<td align="center">Values locked</td>
3650</tr>
3651<tr>
3652<td align="center">FLASH_<wbr/>REQUIRED</td>
3653<td align="center">Camera device initiates AE scan</td>
3654<td align="center">SEARCHING</td>
3655<td align="center">Values changing</td>
3656</tr>
3657<tr>
3658<td align="center">FLASH_<wbr/>REQUIRED</td>
3659<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3660<td align="center">LOCKED</td>
3661<td align="center">Values locked</td>
3662</tr>
3663<tr>
3664<td align="center">LOCKED</td>
3665<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3666<td align="center">SEARCHING</td>
3667<td align="center">Values not good after unlock</td>
3668</tr>
3669<tr>
3670<td align="center">LOCKED</td>
3671<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3672<td align="center">CONVERGED</td>
3673<td align="center">Values good after unlock</td>
3674</tr>
3675<tr>
3676<td align="center">LOCKED</td>
3677<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3678<td align="center">FLASH_<wbr/>REQUIRED</td>
3679<td align="center">Exposure good,<wbr/> but too dark</td>
3680</tr>
3681<tr>
3682<td align="center">PRECAPTURE</td>
3683<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3684<td align="center">CONVERGED</td>
3685<td align="center">Ready for high-quality capture</td>
3686</tr>
3687<tr>
3688<td align="center">PRECAPTURE</td>
3689<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3690<td align="center">LOCKED</td>
3691<td align="center">Ready for high-quality capture</td>
3692</tr>
3693<tr>
3694<td align="center">Any state</td>
3695<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
3696<td align="center">PRECAPTURE</td>
3697<td align="center">Start AE precapture metering sequence</td>
3698</tr>
3699</tbody>
3700</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003701 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003702 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003703
3704
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003705 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3706 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003707
3708
3709 <tr class="entry" id="dynamic_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003710 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003711 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003712 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003713 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003714 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003715
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003716 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003717
3718 <ul class="entry_type_enum">
3719 <li>
3720 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003721 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
3722<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
3723application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003724 </li>
3725 <li>
3726 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003727 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
3728<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
3729is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
3730the autofocus trigger action is called.<wbr/> When that trigger
3731is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
3732the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
3733<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
3734and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003735 </li>
3736 <li>
3737 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003738 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
3739autofocus trigger action is called.<wbr/></p>
3740<p>When that trigger is activated,<wbr/> AF must transition to
3741ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
3742NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
3743position to default,<wbr/> and sets the AF state to
3744INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003745 </li>
3746 <li>
3747 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003748 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3749position continually to attempt to provide a
3750constantly-in-focus image stream.<wbr/></p>
3751<p>The focusing behavior should be suitable for good quality
3752video recording; typically this means slower focus
3753movement and no overshoots.<wbr/> When the AF trigger is not
3754involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
3755and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
3756states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
3757the algorithm should immediately transition into
3758AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3759lens position until a cancel AF trigger is received.<wbr/></p>
3760<p>Once cancel is received,<wbr/> the algorithm should transition
3761back to INACTIVE and resume passive scan.<wbr/> Note that this
3762behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
3763ongoing PASSIVE_<wbr/>SCAN must immediately be
3764canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003765 </li>
3766 <li>
3767 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003768 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3769position continually to attempt to provide a
3770constantly-in-focus image stream.<wbr/></p>
3771<p>The focusing behavior should be suitable for still image
3772capture; typically this means focusing as fast as
3773possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
3774algorithm should start in INACTIVE state,<wbr/> and then
3775transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
3776appropriate as it attempts to maintain focus.<wbr/> When the AF
3777trigger is activated,<wbr/> the algorithm should finish its
3778PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
3779AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3780lens position until a cancel AF trigger is received.<wbr/></p>
3781<p>When the AF cancel trigger is activated,<wbr/> the algorithm
3782should transition back to INACTIVE and then act as if it
3783has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003784 </li>
3785 <li>
3786 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003787 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
3788trigger is ignored,<wbr/> AF state should always be
3789INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003790 </li>
3791 </ul>
3792
3793 </td> <!-- entry_type -->
3794
3795 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003796 <p>Whether AF is currently enabled,<wbr/> and what
3797mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003798 </td>
3799
3800 <td class="entry_units">
3801 </td>
3802
3803 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08003804 <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 -08003805 </td>
3806
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003807 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003808 <ul class="entry_tags">
3809 <li><a href="#tag_BC">BC</a></li>
3810 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003811 </td>
3812
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003813 </tr>
3814 <tr class="entries_header">
3815 <th class="th_details" colspan="5">Details</th>
3816 </tr>
3817 <tr class="entry_cont">
3818 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003819 <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 -08003820<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
3821the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
3822in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003823 </td>
3824 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003825
3826
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003827 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3828 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003829
3830
3831 <tr class="entry" id="dynamic_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003832 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003833 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003834 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003835 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003836 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003837 <span class="entry_type_container">x</span>
3838
3839 <span class="entry_type_array">
3840 5 x area_count
3841 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003842 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003843
3844
3845 </td> <!-- entry_type -->
3846
3847 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003848 <p>List of areas to use for focus
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003849estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003850 </td>
3851
3852 <td class="entry_units">
3853 </td>
3854
3855 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003856 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[2]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003857 </td>
3858
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003859 <td class="entry_tags">
3860 <ul class="entry_tags">
3861 <li><a href="#tag_BC">BC</a></li>
3862 </ul>
3863 </td>
3864
3865 </tr>
3866 <tr class="entries_header">
3867 <th class="th_details" colspan="5">Details</th>
3868 </tr>
3869 <tr class="entry_cont">
3870 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003871 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003872xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08003873specified coordinates.<wbr/></p>
3874<p>The coordinate system is based on the active pixel array,<wbr/>
3875with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003876(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3877<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 -08003878bottom-right pixel in the active pixel array.<wbr/> The weight
3879should be nonnegative.<wbr/></p>
3880<p>If all regions have 0 weight,<wbr/> then no specific focus area
3881needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003882outside 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 -08003883should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003884used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003885 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003886 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003887
3888
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003889 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3890 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003891
3892
3893 <tr class="entry" id="dynamic_android.control.afState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003894 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003895 android.<wbr/>control.<wbr/>af<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003896 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003897 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003898 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003899
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003900 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003901
3902 <ul class="entry_type_enum">
3903 <li>
3904 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003905 <span class="entry_type_enum_notes"><p>AF off or has not yet tried to scan/<wbr/>been asked
3906to scan.<wbr/> When a camera device is opened,<wbr/> it starts in
3907this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003908 </li>
3909 <li>
3910 <span class="entry_type_enum_name">PASSIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003911 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF is
3912currently doing an AF scan initiated by a continuous
3913autofocus mode</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003914 </li>
3915 <li>
3916 <span class="entry_type_enum_name">PASSIVE_FOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003917 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF currently
3918believes it is in focus,<wbr/> but may restart scanning at
3919any time.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003920 </li>
3921 <li>
3922 <span class="entry_type_enum_name">ACTIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003923 <span class="entry_type_enum_notes"><p>if AUTO or MACRO modes are supported.<wbr/> AF is doing
3924an AF scan because it was triggered by AF
3925trigger</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003926 </li>
3927 <li>
3928 <span class="entry_type_enum_name">FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003929 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF
3930believes it is focused correctly and is
3931locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003932 </li>
3933 <li>
3934 <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003935 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF has
3936failed to focus successfully and is
3937locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003938 </li>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003939 <li>
3940 <span class="entry_type_enum_name">PASSIVE_UNFOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003941 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF finished a
3942passive scan without finding focus,<wbr/> and may restart
3943scanning at any time.<wbr/></p></span>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003944 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003945 </ul>
3946
3947 </td> <!-- entry_type -->
3948
3949 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003950 <p>Current state of AF algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003951 </td>
3952
3953 <td class="entry_units">
3954 </td>
3955
3956 <td class="entry_range">
3957 </td>
3958
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003959 <td class="entry_tags">
3960 </td>
3961
3962 </tr>
3963 <tr class="entries_header">
3964 <th class="th_details" colspan="5">Details</th>
3965 </tr>
3966 <tr class="entry_cont">
3967 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003968 <p>Switching between or enabling AF modes (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) always
3969resets the AF state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3970or <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
3971the algorithm states to INACTIVE.<wbr/></p>
3972<p>The camera device can do several state transitions between two results,<wbr/> if it is
3973allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3974seen in a result.<wbr/></p>
3975<p>The state in the result is the state for this image (in sync with this image): if
3976AF state becomes FOCUSED,<wbr/> then the image data associated with this result should
3977be sharp.<wbr/></p>
3978<p>Below are state transition tables for different AF modes.<wbr/></p>
3979<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>
3980<table>
3981<thead>
3982<tr>
3983<th align="center">State</th>
3984<th align="center">Transition Cause</th>
3985<th align="center">New State</th>
3986<th align="center">Notes</th>
3987</tr>
3988</thead>
3989<tbody>
3990<tr>
3991<td align="center">INACTIVE</td>
3992<td align="center"></td>
3993<td align="center">INACTIVE</td>
3994<td align="center">Never changes</td>
3995</tr>
3996</tbody>
3997</table>
3998<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>
3999<table>
4000<thead>
4001<tr>
4002<th align="center">State</th>
4003<th align="center">Transition Cause</th>
4004<th align="center">New State</th>
4005<th align="center">Notes</th>
4006</tr>
4007</thead>
4008<tbody>
4009<tr>
4010<td align="center">INACTIVE</td>
4011<td align="center">AF_<wbr/>TRIGGER</td>
4012<td align="center">ACTIVE_<wbr/>SCAN</td>
4013<td align="center">Start AF sweep,<wbr/> Lens now moving</td>
4014</tr>
4015<tr>
4016<td align="center">ACTIVE_<wbr/>SCAN</td>
4017<td align="center">AF sweep done</td>
4018<td align="center">FOCUSED_<wbr/>LOCKED</td>
4019<td align="center">Focused,<wbr/> Lens now locked</td>
4020</tr>
4021<tr>
4022<td align="center">ACTIVE_<wbr/>SCAN</td>
4023<td align="center">AF sweep done</td>
4024<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4025<td align="center">Not focused,<wbr/> Lens now locked</td>
4026</tr>
4027<tr>
4028<td align="center">ACTIVE_<wbr/>SCAN</td>
4029<td align="center">AF_<wbr/>CANCEL</td>
4030<td align="center">INACTIVE</td>
4031<td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
4032</tr>
4033<tr>
4034<td align="center">FOCUSED_<wbr/>LOCKED</td>
4035<td align="center">AF_<wbr/>CANCEL</td>
4036<td align="center">INACTIVE</td>
4037<td align="center">Cancel/<wbr/>reset AF</td>
4038</tr>
4039<tr>
4040<td align="center">FOCUSED_<wbr/>LOCKED</td>
4041<td align="center">AF_<wbr/>TRIGGER</td>
4042<td align="center">ACTIVE_<wbr/>SCAN</td>
4043<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4044</tr>
4045<tr>
4046<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4047<td align="center">AF_<wbr/>CANCEL</td>
4048<td align="center">INACTIVE</td>
4049<td align="center">Cancel/<wbr/>reset AF</td>
4050</tr>
4051<tr>
4052<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4053<td align="center">AF_<wbr/>TRIGGER</td>
4054<td align="center">ACTIVE_<wbr/>SCAN</td>
4055<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4056</tr>
4057<tr>
4058<td align="center">Any state</td>
4059<td align="center">Mode change</td>
4060<td align="center">INACTIVE</td>
4061<td align="center"></td>
4062</tr>
4063</tbody>
4064</table>
4065<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>
4066<table>
4067<thead>
4068<tr>
4069<th align="center">State</th>
4070<th align="center">Transition Cause</th>
4071<th align="center">New State</th>
4072<th align="center">Notes</th>
4073</tr>
4074</thead>
4075<tbody>
4076<tr>
4077<td align="center">INACTIVE</td>
4078<td align="center">Camera device initiates new scan</td>
4079<td align="center">PASSIVE_<wbr/>SCAN</td>
4080<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4081</tr>
4082<tr>
4083<td align="center">INACTIVE</td>
4084<td align="center">AF_<wbr/>TRIGGER</td>
4085<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4086<td align="center">AF state query,<wbr/> Lens now locked</td>
4087</tr>
4088<tr>
4089<td align="center">PASSIVE_<wbr/>SCAN</td>
4090<td align="center">Camera device completes current scan</td>
4091<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4092<td align="center">End AF scan,<wbr/> Lens now locked</td>
4093</tr>
4094<tr>
4095<td align="center">PASSIVE_<wbr/>SCAN</td>
4096<td align="center">Camera device fails current scan</td>
4097<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4098<td align="center">End AF scan,<wbr/> Lens now locked</td>
4099</tr>
4100<tr>
4101<td align="center">PASSIVE_<wbr/>SCAN</td>
4102<td align="center">AF_<wbr/>TRIGGER</td>
4103<td align="center">FOCUSED_<wbr/>LOCKED</td>
4104<td align="center">Immediate trans.<wbr/> If focus is good,<wbr/> Lens now locked</td>
4105</tr>
4106<tr>
4107<td align="center">PASSIVE_<wbr/>SCAN</td>
4108<td align="center">AF_<wbr/>TRIGGER</td>
4109<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4110<td align="center">Immediate trans.<wbr/> if focus is bad,<wbr/> Lens now locked</td>
4111</tr>
4112<tr>
4113<td align="center">PASSIVE_<wbr/>SCAN</td>
4114<td align="center">AF_<wbr/>CANCEL</td>
4115<td align="center">INACTIVE</td>
4116<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4117</tr>
4118<tr>
4119<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4120<td align="center">Camera device initiates new scan</td>
4121<td align="center">PASSIVE_<wbr/>SCAN</td>
4122<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4123</tr>
4124<tr>
4125<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4126<td align="center">Camera device initiates new scan</td>
4127<td align="center">PASSIVE_<wbr/>SCAN</td>
4128<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4129</tr>
4130<tr>
4131<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4132<td align="center">AF_<wbr/>TRIGGER</td>
4133<td align="center">FOCUSED_<wbr/>LOCKED</td>
4134<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4135</tr>
4136<tr>
4137<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4138<td align="center">AF_<wbr/>TRIGGER</td>
4139<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4140<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4141</tr>
4142<tr>
4143<td align="center">FOCUSED_<wbr/>LOCKED</td>
4144<td align="center">AF_<wbr/>TRIGGER</td>
4145<td align="center">FOCUSED_<wbr/>LOCKED</td>
4146<td align="center">No effect</td>
4147</tr>
4148<tr>
4149<td align="center">FOCUSED_<wbr/>LOCKED</td>
4150<td align="center">AF_<wbr/>CANCEL</td>
4151<td align="center">INACTIVE</td>
4152<td align="center">Restart AF scan</td>
4153</tr>
4154<tr>
4155<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4156<td align="center">AF_<wbr/>TRIGGER</td>
4157<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4158<td align="center">No effect</td>
4159</tr>
4160<tr>
4161<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4162<td align="center">AF_<wbr/>CANCEL</td>
4163<td align="center">INACTIVE</td>
4164<td align="center">Restart AF scan</td>
4165</tr>
4166</tbody>
4167</table>
4168<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>
4169<table>
4170<thead>
4171<tr>
4172<th align="center">State</th>
4173<th align="center">Transition Cause</th>
4174<th align="center">New State</th>
4175<th align="center">Notes</th>
4176</tr>
4177</thead>
4178<tbody>
4179<tr>
4180<td align="center">INACTIVE</td>
4181<td align="center">Camera device initiates new scan</td>
4182<td align="center">PASSIVE_<wbr/>SCAN</td>
4183<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4184</tr>
4185<tr>
4186<td align="center">INACTIVE</td>
4187<td align="center">AF_<wbr/>TRIGGER</td>
4188<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4189<td align="center">AF state query,<wbr/> Lens now locked</td>
4190</tr>
4191<tr>
4192<td align="center">PASSIVE_<wbr/>SCAN</td>
4193<td align="center">Camera device completes current scan</td>
4194<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4195<td align="center">End AF scan,<wbr/> Lens now locked</td>
4196</tr>
4197<tr>
4198<td align="center">PASSIVE_<wbr/>SCAN</td>
4199<td align="center">Camera device fails current scan</td>
4200<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4201<td align="center">End AF scan,<wbr/> Lens now locked</td>
4202</tr>
4203<tr>
4204<td align="center">PASSIVE_<wbr/>SCAN</td>
4205<td align="center">AF_<wbr/>TRIGGER</td>
4206<td align="center">FOCUSED_<wbr/>LOCKED</td>
4207<td align="center">Eventual trans.<wbr/> once focus good,<wbr/> Lens now locked</td>
4208</tr>
4209<tr>
4210<td align="center">PASSIVE_<wbr/>SCAN</td>
4211<td align="center">AF_<wbr/>TRIGGER</td>
4212<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4213<td align="center">Eventual trans.<wbr/> if cannot focus,<wbr/> Lens now locked</td>
4214</tr>
4215<tr>
4216<td align="center">PASSIVE_<wbr/>SCAN</td>
4217<td align="center">AF_<wbr/>CANCEL</td>
4218<td align="center">INACTIVE</td>
4219<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4220</tr>
4221<tr>
4222<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4223<td align="center">Camera device initiates new scan</td>
4224<td align="center">PASSIVE_<wbr/>SCAN</td>
4225<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4226</tr>
4227<tr>
4228<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4229<td align="center">Camera device initiates new scan</td>
4230<td align="center">PASSIVE_<wbr/>SCAN</td>
4231<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4232</tr>
4233<tr>
4234<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4235<td align="center">AF_<wbr/>TRIGGER</td>
4236<td align="center">FOCUSED_<wbr/>LOCKED</td>
4237<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4238</tr>
4239<tr>
4240<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4241<td align="center">AF_<wbr/>TRIGGER</td>
4242<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4243<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4244</tr>
4245<tr>
4246<td align="center">FOCUSED_<wbr/>LOCKED</td>
4247<td align="center">AF_<wbr/>TRIGGER</td>
4248<td align="center">FOCUSED_<wbr/>LOCKED</td>
4249<td align="center">No effect</td>
4250</tr>
4251<tr>
4252<td align="center">FOCUSED_<wbr/>LOCKED</td>
4253<td align="center">AF_<wbr/>CANCEL</td>
4254<td align="center">INACTIVE</td>
4255<td align="center">Restart AF scan</td>
4256</tr>
4257<tr>
4258<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4259<td align="center">AF_<wbr/>TRIGGER</td>
4260<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4261<td align="center">No effect</td>
4262</tr>
4263<tr>
4264<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4265<td align="center">AF_<wbr/>CANCEL</td>
4266<td align="center">INACTIVE</td>
4267<td align="center">Restart AF scan</td>
4268</tr>
4269</tbody>
4270</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004271 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004272 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004273
4274
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004275 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4276 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004277
4278
4279 <tr class="entry" id="dynamic_android.control.afTriggerId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004280 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004281 android.<wbr/>control.<wbr/>af<wbr/>Trigger<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004282 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004283 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004284 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004285
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004286 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004287
4288
4289 </td> <!-- entry_type -->
4290
4291 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004292 <p>The ID sent with the latest
4293CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004294 </td>
4295
4296 <td class="entry_units">
4297 </td>
4298
4299 <td class="entry_range">
Zhijun He7391bb62014-02-05 00:09:04 -08004300 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004301 </td>
4302
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004303 <td class="entry_tags">
4304 </td>
4305
4306 </tr>
4307 <tr class="entries_header">
4308 <th class="th_details" colspan="5">Details</th>
4309 </tr>
4310 <tr class="entry_cont">
4311 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004312 <p>Must be 0 if no CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS trigger
4313received yet by HAL.<wbr/> Always updated even if AF algorithm
4314ignores the trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004315 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004316 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004317
4318
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004319 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4320 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004321
4322
4323 <tr class="entry" id="dynamic_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004324 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004325 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004326 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004327 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004328 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004329
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004330 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004331
4332 <ul class="entry_type_enum">
4333 <li>
4334 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004335 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4336the application-selected color transform matrix
4337(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
4338(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
4339device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004340 </li>
4341 <li>
4342 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004343 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
4344the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
4345and <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 -08004346 </li>
4347 <li>
4348 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004349 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4350the camera device uses incandescent light as the assumed scene
4351illumination for white balance.<wbr/> While the exact white balance
4352transforms are up to the camera device,<wbr/> they will approximately
4353match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004354 </li>
4355 <li>
4356 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004357 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4358the camera device uses fluorescent light as the assumed scene
4359illumination for white balance.<wbr/> While the exact white balance
4360transforms are up to the camera device,<wbr/> they will approximately
4361match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004362 </li>
4363 <li>
4364 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004365 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4366the camera device uses warm fluorescent light as the assumed scene
4367illumination for white balance.<wbr/> While the exact white balance
4368transforms are up to the camera device,<wbr/> they will approximately
4369match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004370 </li>
4371 <li>
4372 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004373 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4374the camera device uses daylight light as the assumed scene
4375illumination for white balance.<wbr/> While the exact white balance
4376transforms are up to the camera device,<wbr/> they will approximately
4377match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004378 </li>
4379 <li>
4380 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004381 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4382the camera device uses cloudy daylight light as the assumed scene
4383illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004384 </li>
4385 <li>
4386 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004387 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4388the camera device uses twilight light as the assumed scene
4389illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004390 </li>
4391 <li>
4392 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004393 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4394the camera device uses shade light as the assumed scene
4395illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004396 </li>
4397 </ul>
4398
4399 </td> <!-- entry_type -->
4400
4401 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004402 <p>Whether AWB is currently setting the color
4403transform fields,<wbr/> and what its illumination target
4404is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004405 </td>
4406
4407 <td class="entry_units">
4408 </td>
4409
4410 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08004411 <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 -08004412 </td>
4413
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004414 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004415 <ul class="entry_tags">
4416 <li><a href="#tag_BC">BC</a></li>
4417 <li><a href="#tag_AWB">AWB</a></li>
4418 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004419 </td>
4420
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004421 </tr>
4422 <tr class="entries_header">
4423 <th class="th_details" colspan="5">Details</th>
4424 </tr>
4425 <tr class="entry_cont">
4426 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08004427 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
4428<p>When set to the ON mode,<wbr/> the camera device's auto white balance
4429routine is enabled,<wbr/> overriding the application's selected
4430<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
4431<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4432<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
4433routine is disabled.<wbr/> The applicantion manually controls the white
4434balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
4435and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4436<p>When set to any other modes,<wbr/> the camera device's auto white balance
4437routine is disabled.<wbr/> The camera device uses each particular illumination
4438target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004439 </td>
4440 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004441
4442
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004443 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4444 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004445
4446
4447 <tr class="entry" id="dynamic_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004448 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004449 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004450 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004451 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004452 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004453 <span class="entry_type_container">x</span>
4454
4455 <span class="entry_type_array">
4456 5 x area_count
4457 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004458 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004459
4460
4461 </td> <!-- entry_type -->
4462
4463 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004464 <p>List of areas to use for illuminant
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004465estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004466 </td>
4467
4468 <td class="entry_units">
4469 </td>
4470
4471 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004472 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[1]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004473 </td>
4474
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004475 <td class="entry_tags">
4476 <ul class="entry_tags">
4477 <li><a href="#tag_BC">BC</a></li>
4478 </ul>
4479 </td>
4480
4481 </tr>
4482 <tr class="entries_header">
4483 <th class="th_details" colspan="5">Details</th>
4484 </tr>
4485 <tr class="entry_cont">
4486 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004487 <p>Only used in AUTO mode.<wbr/></p>
4488<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004489xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08004490specified coordinates.<wbr/></p>
4491<p>The coordinate system is based on the active pixel array,<wbr/>
4492with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004493(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
4494<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 -08004495bottom-right pixel in the active pixel array.<wbr/> The weight
4496should be nonnegative.<wbr/></p>
4497<p>If all regions have 0 weight,<wbr/> then no specific metering area
4498needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004499outside 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 -08004500should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004501used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004502 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004503 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004504
4505
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004506 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4507 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004508
4509
4510 <tr class="entry" id="dynamic_android.control.awbState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004511 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004512 android.<wbr/>control.<wbr/>awb<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004513 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004514 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004515 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004516
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004517 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004518
4519 <ul class="entry_type_enum">
4520 <li>
4521 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004522 <span class="entry_type_enum_notes"><p>AWB is not in auto mode.<wbr/> When a camera device is opened,<wbr/> it
4523starts in this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004524 </li>
4525 <li>
4526 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004527 <span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control
Zhijun He92e698d2014-01-13 16:24:31 -08004528values for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004529 </li>
4530 <li>
4531 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004532 <span class="entry_type_enum_notes"><p>AWB has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08004533current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004534 </li>
4535 <li>
4536 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08004537 <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004538 </li>
4539 </ul>
4540
4541 </td> <!-- entry_type -->
4542
4543 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004544 <p>Current state of AWB algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004545 </td>
4546
4547 <td class="entry_units">
4548 </td>
4549
4550 <td class="entry_range">
4551 </td>
4552
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004553 <td class="entry_tags">
4554 </td>
4555
4556 </tr>
4557 <tr class="entries_header">
4558 <th class="th_details" colspan="5">Details</th>
4559 </tr>
4560 <tr class="entry_cont">
4561 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08004562 <p>Switching between or enabling AWB modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) always
4563resets the AWB state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
4564or <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
4565the algorithm states to INACTIVE.<wbr/></p>
4566<p>The camera device can do several state transitions between two results,<wbr/> if it is
4567allowed by the state transition table.<wbr/> So INACTIVE may never actually be seen in
4568a result.<wbr/></p>
4569<p>The state in the result is the state for this image (in sync with this image): if
4570AWB state becomes CONVERGED,<wbr/> then the image data associated with this result should
4571be good to use.<wbr/></p>
4572<p>Below are state transition tables for different AWB modes.<wbr/></p>
4573<p>When <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != AWB_<wbr/>MODE_<wbr/>AUTO</code>:</p>
4574<table>
4575<thead>
4576<tr>
4577<th align="center">State</th>
4578<th align="center">Transition Cause</th>
4579<th align="center">New State</th>
4580<th align="center">Notes</th>
4581</tr>
4582</thead>
4583<tbody>
4584<tr>
4585<td align="center">INACTIVE</td>
4586<td align="center"></td>
4587<td align="center">INACTIVE</td>
4588<td align="center">Camera device auto white balance algorithm is disabled</td>
4589</tr>
4590</tbody>
4591</table>
4592<p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is AWB_<wbr/>MODE_<wbr/>AUTO:</p>
4593<table>
4594<thead>
4595<tr>
4596<th align="center">State</th>
4597<th align="center">Transition Cause</th>
4598<th align="center">New State</th>
4599<th align="center">Notes</th>
4600</tr>
4601</thead>
4602<tbody>
4603<tr>
4604<td align="center">INACTIVE</td>
4605<td align="center">Camera device initiates AWB scan</td>
4606<td align="center">SEARCHING</td>
4607<td align="center">Values changing</td>
4608</tr>
4609<tr>
4610<td align="center">INACTIVE</td>
4611<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4612<td align="center">LOCKED</td>
4613<td align="center">Values locked</td>
4614</tr>
4615<tr>
4616<td align="center">SEARCHING</td>
4617<td align="center">Camera device finishes AWB scan</td>
4618<td align="center">CONVERGED</td>
4619<td align="center">Good values,<wbr/> not changing</td>
4620</tr>
4621<tr>
4622<td align="center">SEARCHING</td>
4623<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4624<td align="center">LOCKED</td>
4625<td align="center">Values locked</td>
4626</tr>
4627<tr>
4628<td align="center">CONVERGED</td>
4629<td align="center">Camera device initiates AWB scan</td>
4630<td align="center">SEARCHING</td>
4631<td align="center">Values changing</td>
4632</tr>
4633<tr>
4634<td align="center">CONVERGED</td>
4635<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4636<td align="center">LOCKED</td>
4637<td align="center">Values locked</td>
4638</tr>
4639<tr>
4640<td align="center">LOCKED</td>
4641<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4642<td align="center">SEARCHING</td>
4643<td align="center">Values not good after unlock</td>
4644</tr>
4645<tr>
4646<td align="center">LOCKED</td>
4647<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4648<td align="center">CONVERGED</td>
4649<td align="center">Values good after unlock</td>
4650</tr>
4651</tbody>
4652</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004653 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004654 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004655
4656
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004657 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4658 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004659
4660
4661 <tr class="entry" id="dynamic_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004662 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004663 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004664 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004665 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004666 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004667
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004668 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004669
4670 <ul class="entry_type_enum">
4671 <li>
4672 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004673 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
4674routines are disabled,<wbr/> no other settings in
4675android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004676 </li>
4677 <li>
4678 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004679 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
4680Manual control of capture parameters is disabled.<wbr/> All
4681controls in android.<wbr/>control.<wbr/>* besides sceneMode take
4682effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004683 </li>
4684 <li>
4685 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004686 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
4687control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
4688controls; the HAL must ignore those settings while
4689USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
4690scene mode).<wbr/> Other control entries are still active.<wbr/>
4691This setting can only be used if availableSceneModes !=
4692UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004693 </li>
4694 </ul>
4695
4696 </td> <!-- entry_type -->
4697
4698 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004699 <p>Overall mode of 3A control
4700routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004701 </td>
4702
4703 <td class="entry_units">
4704 </td>
4705
4706 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004707 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004708 </td>
4709
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004710 <td class="entry_tags">
4711 <ul class="entry_tags">
4712 <li><a href="#tag_BC">BC</a></li>
4713 </ul>
4714 </td>
4715
4716 </tr>
4717 <tr class="entries_header">
4718 <th class="th_details" colspan="5">Details</th>
4719 </tr>
4720 <tr class="entry_cont">
4721 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004722 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004723by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08004724capture parameters itself.<wbr/></p>
4725<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004726android.<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 -08004727<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004728android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08004729one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004730as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004731<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 -08004732 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004733 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004734
4735
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004736 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4737 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004738
4739
4740
4741 <!-- end of kind -->
4742 </tbody>
4743
4744 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004745 <tr><td colspan="6" id="section_demosaic" class="section">demosaic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004746
4747
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004748 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004749
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004750 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004751 <tr>
4752 <th class="th_name">Property Name</th>
4753 <th class="th_type">Type</th>
4754 <th class="th_description">Description</th>
4755 <th class="th_units">Units</th>
4756 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004757 <th class="th_tags">Tags</th>
4758 </tr>
4759 </thead>
4760
4761 <tbody>
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772 <tr class="entry" id="controls_android.demosaic.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004773 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004774 android.<wbr/>demosaic.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004775 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004776 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004777 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004778
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004779 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004780
4781 <ul class="entry_type_enum">
4782 <li>
4783 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004784 <span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to
4785Bayer RAW output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004786 </li>
4787 <li>
4788 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004789 <span class="entry_type_enum_notes"><p>High-quality may reduce output frame
4790rate</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004791 </li>
4792 </ul>
4793
4794 </td> <!-- entry_type -->
4795
4796 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004797 <p>Controls the quality of the demosaicing
4798processing</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004799 </td>
4800
4801 <td class="entry_units">
4802 </td>
4803
4804 <td class="entry_range">
4805 </td>
4806
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004807 <td class="entry_tags">
4808 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004809 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004810 </ul>
4811 </td>
4812
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004813 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004814
4815
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004816 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4817 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004818
4819
4820
4821 <!-- end of kind -->
4822 </tbody>
4823
4824 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004825 <tr><td colspan="6" id="section_edge" class="section">edge</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004826
4827
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004828 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004829
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004830 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004831 <tr>
4832 <th class="th_name">Property Name</th>
4833 <th class="th_type">Type</th>
4834 <th class="th_description">Description</th>
4835 <th class="th_units">Units</th>
4836 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004837 <th class="th_tags">Tags</th>
4838 </tr>
4839 </thead>
4840
4841 <tbody>
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852 <tr class="entry" id="controls_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004853 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004854 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004855 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004856 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004857 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004858
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004859 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004860
4861 <ul class="entry_type_enum">
4862 <li>
4863 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004864 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004865 </li>
4866 <li>
4867 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004868 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4869output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004870 </li>
4871 <li>
4872 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004873 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4874quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004875 </li>
4876 </ul>
4877
4878 </td> <!-- entry_type -->
4879
4880 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004881 <p>Operation mode for edge
4882enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004883 </td>
4884
4885 <td class="entry_units">
4886 </td>
4887
4888 <td class="entry_range">
4889 </td>
4890
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004891 <td class="entry_tags">
4892 </td>
4893
4894 </tr>
4895 <tr class="entries_header">
4896 <th class="th_details" colspan="5">Details</th>
4897 </tr>
4898 <tr class="entry_cont">
4899 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004900 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
4901enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004902<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08004903will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004904camera device will use the highest-quality enhancement algorithms,<wbr/>
4905even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08004906not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004907 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004908 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004909
4910
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004911 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4912 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004913
4914
4915 <tr class="entry" id="controls_android.edge.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004916 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004917 android.<wbr/>edge.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004918 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004919 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004920 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004921
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004922 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004923
4924
4925 </td> <!-- entry_type -->
4926
4927 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004928 <p>Control the amount of edge enhancement
4929applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004930 </td>
4931
4932 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08004933 1-10; 10 is maximum sharpening
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004934 </td>
4935
4936 <td class="entry_range">
4937 </td>
4938
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004939 <td class="entry_tags">
4940 </td>
4941
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004942 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004943
4944
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004945 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4946 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004947
4948
4949
4950 <!-- end of kind -->
4951 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004952 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004953
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004954 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004955 <tr>
4956 <th class="th_name">Property Name</th>
4957 <th class="th_type">Type</th>
4958 <th class="th_description">Description</th>
4959 <th class="th_units">Units</th>
4960 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004961 <th class="th_tags">Tags</th>
4962 </tr>
4963 </thead>
4964
4965 <tbody>
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976 <tr class="entry" id="dynamic_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004977 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004978 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004979 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004980 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004981 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004982
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004983 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004984
4985 <ul class="entry_type_enum">
4986 <li>
4987 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004988 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004989 </li>
4990 <li>
4991 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004992 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4993output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004994 </li>
4995 <li>
4996 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004997 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4998quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004999 </li>
5000 </ul>
5001
5002 </td> <!-- entry_type -->
5003
5004 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005005 <p>Operation mode for edge
5006enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005007 </td>
5008
5009 <td class="entry_units">
5010 </td>
5011
5012 <td class="entry_range">
5013 </td>
5014
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005015 <td class="entry_tags">
5016 </td>
5017
5018 </tr>
5019 <tr class="entries_header">
5020 <th class="th_details" colspan="5">Details</th>
5021 </tr>
5022 <tr class="entry_cont">
5023 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005024 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
5025enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005026<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08005027will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005028camera device will use the highest-quality enhancement algorithms,<wbr/>
5029even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08005030not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005031 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005032 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005033
5034
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005035 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5036 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005037
5038
5039
5040 <!-- end of kind -->
5041 </tbody>
5042
5043 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005044 <tr><td colspan="6" id="section_flash" class="section">flash</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005045
5046
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005047 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005048
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005049 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005050 <tr>
5051 <th class="th_name">Property Name</th>
5052 <th class="th_type">Type</th>
5053 <th class="th_description">Description</th>
5054 <th class="th_units">Units</th>
5055 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005056 <th class="th_tags">Tags</th>
5057 </tr>
5058 </thead>
5059
5060 <tbody>
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071 <tr class="entry" id="controls_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005072 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005073 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005074 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005075 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005076 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005077
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005078 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005079
5080
5081 </td> <!-- entry_type -->
5082
5083 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005084 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005085 </td>
5086
5087 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005088 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005089 </td>
5090
5091 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005092 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005093 </td>
5094
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005095 <td class="entry_tags">
5096 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005097 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005098 </ul>
5099 </td>
5100
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005101 </tr>
5102 <tr class="entries_header">
5103 <th class="th_details" colspan="5">Details</th>
5104 </tr>
5105 <tr class="entry_cont">
5106 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005107 <p>Power for snapshot may use a different scale than
5108for torch mode.<wbr/> Only one entry for torch mode will be
5109used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005110 </td>
5111 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005112
5113
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005114 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5115 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005116
5117
5118 <tr class="entry" id="controls_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005119 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005120 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005121 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005122 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005123 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005124
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005125 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005126
5127
5128 </td> <!-- entry_type -->
5129
5130 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005131 <p>Firing time of flash relative to start of
5132exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005133 </td>
5134
5135 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005136 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005137 </td>
5138
5139 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005140 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005141 </td>
5142
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005143 <td class="entry_tags">
5144 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005145 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005146 </ul>
5147 </td>
5148
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005149 </tr>
5150 <tr class="entries_header">
5151 <th class="th_details" colspan="5">Details</th>
5152 </tr>
5153 <tr class="entry_cont">
5154 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005155 <p>Clamped to (0,<wbr/> exposure time - flash
5156duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005157 </td>
5158 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005159
5160
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005161 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5162 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005163
5164
5165 <tr class="entry" id="controls_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005166 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005167 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005168 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005169 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005170 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005171
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005172 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005173
5174 <ul class="entry_type_enum">
5175 <li>
5176 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005177 <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 -08005178 </li>
5179 <li>
5180 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005181 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5182for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5183<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005184 </li>
5185 <li>
5186 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005187 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005188 </li>
5189 </ul>
5190
5191 </td> <!-- entry_type -->
5192
5193 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005194 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005195 </td>
5196
5197 <td class="entry_units">
5198 </td>
5199
5200 <td class="entry_range">
5201 </td>
5202
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005203 <td class="entry_tags">
5204 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005205 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005206 </ul>
5207 </td>
5208
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005209 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005210 <tr class="entries_header">
5211 <th class="th_details" colspan="5">Details</th>
5212 </tr>
5213 <tr class="entry_cont">
5214 <td class="entry_details" colspan="5">
5215 <p>This control is only effective when flash unit is available
Zhijun Hebdc94c42014-01-21 18:28:30 -08005216(<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 -08005217<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/>
5218Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5219ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5220<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5221<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5222device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5223control should be used along with AE precapture metering sequence
5224(<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>
5225<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5226for 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 -08005227<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 -08005228 </td>
5229 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005230
5231
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005232 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5233 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005234
5235
5236
5237 <!-- end of kind -->
5238 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005239 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005240
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005241 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005242 <tr>
5243 <th class="th_name">Property Name</th>
5244 <th class="th_type">Type</th>
5245 <th class="th_description">Description</th>
5246 <th class="th_units">Units</th>
5247 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005248 <th class="th_tags">Tags</th>
5249 </tr>
5250 </thead>
5251
5252 <tbody>
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265 <tr class="entry" id="static_android.flash.info.available">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005266 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005267 android.<wbr/>flash.<wbr/>info.<wbr/>available
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005268 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005269 <td class="entry_type">
Zhijun He5169ce12014-01-24 16:48:25 -08005270 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005271
Zhijun He5169ce12014-01-24 16:48:25 -08005272 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005273
Zhijun He5169ce12014-01-24 16:48:25 -08005274 <ul class="entry_type_enum">
5275 <li>
5276 <span class="entry_type_enum_name">FALSE</span>
5277 </li>
5278 <li>
5279 <span class="entry_type_enum_name">TRUE</span>
5280 </li>
5281 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005282
5283 </td> <!-- entry_type -->
5284
5285 <td class="entry_description">
Zhijun He5169ce12014-01-24 16:48:25 -08005286 <p>Whether this camera device has a
5287flash.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005288 </td>
5289
5290 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005291 </td>
5292
5293 <td class="entry_range">
5294 </td>
5295
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005296 <td class="entry_tags">
5297 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005298 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005299 </ul>
5300 </td>
5301
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005302 </tr>
5303 <tr class="entries_header">
5304 <th class="th_details" colspan="5">Details</th>
5305 </tr>
5306 <tr class="entry_cont">
5307 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005308 <p>If no flash,<wbr/> none of the flash controls do
Zhijun He5169ce12014-01-24 16:48:25 -08005309anything.<wbr/> All other metadata should return 0.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005310 </td>
5311 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005312
5313
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005314 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5315 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005316
5317
5318 <tr class="entry" id="static_android.flash.info.chargeDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005319 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005320 android.<wbr/>flash.<wbr/>info.<wbr/>charge<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005321 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005322 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005323 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005324
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005325 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005326
5327
5328 </td> <!-- entry_type -->
5329
5330 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005331 <p>Time taken before flash can fire
5332again</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005333 </td>
5334
5335 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005336 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005337 </td>
5338
5339 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005340 <p>0-1e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005341 </td>
5342
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005343 <td class="entry_tags">
5344 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005345 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005346 </ul>
5347 </td>
5348
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005349 </tr>
5350 <tr class="entries_header">
5351 <th class="th_details" colspan="5">Details</th>
5352 </tr>
5353 <tr class="entry_cont">
5354 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005355 <p>1 second too long/<wbr/>too short for recharge? Should
5356this be power-dependent?</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005357 </td>
5358 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005359
5360
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005361 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5362 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005363
5364
5365
5366
5367
5368 <tr class="entry" id="static_android.flash.colorTemperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005369 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005370 android.<wbr/>flash.<wbr/>color<wbr/>Temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005371 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005372 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005373 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005374
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005375 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005376
5377
5378 </td> <!-- entry_type -->
5379
5380 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005381 <p>The x,<wbr/>y whitepoint of the
5382flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005383 </td>
5384
5385 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005386 pair of floats
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005387 </td>
5388
5389 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005390 <p>0-1 for both</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005391 </td>
5392
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005393 <td class="entry_tags">
5394 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005395 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005396 </ul>
5397 </td>
5398
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005399 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005400
5401
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005402 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5403 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005404
5405
5406 <tr class="entry" id="static_android.flash.maxEnergy">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005407 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005408 android.<wbr/>flash.<wbr/>max<wbr/>Energy
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005409 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005410 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005411 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005412
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005413 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005414
5415
5416 </td> <!-- entry_type -->
5417
5418 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005419 <p>Max energy output of the flash for a full
5420power single flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005421 </td>
5422
5423 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005424 lumen-seconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005425 </td>
5426
5427 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08005428 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005429 </td>
5430
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005431 <td class="entry_tags">
5432 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005433 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005434 </ul>
5435 </td>
5436
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005437 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005438
5439
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005440 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5441 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005442
5443
5444
5445 <!-- end of kind -->
5446 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005447 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005448
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005449 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005450 <tr>
5451 <th class="th_name">Property Name</th>
5452 <th class="th_type">Type</th>
5453 <th class="th_description">Description</th>
5454 <th class="th_units">Units</th>
5455 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005456 <th class="th_tags">Tags</th>
5457 </tr>
5458 </thead>
5459
5460 <tbody>
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471 <tr class="entry" id="dynamic_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005472 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005473 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005474 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005475 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005476 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005477
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005478 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005479
5480
5481 </td> <!-- entry_type -->
5482
5483 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005484 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005485 </td>
5486
5487 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005488 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005489 </td>
5490
5491 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005492 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005493 </td>
5494
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005495 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005496 <ul class="entry_tags">
5497 <li><a href="#tag_V1">V1</a></li>
5498 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005499 </td>
5500
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005501 </tr>
5502 <tr class="entries_header">
5503 <th class="th_details" colspan="5">Details</th>
5504 </tr>
5505 <tr class="entry_cont">
5506 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005507 <p>Power for snapshot may use a different scale than
5508for torch mode.<wbr/> Only one entry for torch mode will be
5509used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005510 </td>
5511 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005512
5513
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005514 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5515 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005516
5517
5518 <tr class="entry" id="dynamic_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005519 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005520 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005521 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005522 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005523 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005524
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005525 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005526
5527
5528 </td> <!-- entry_type -->
5529
5530 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005531 <p>Firing time of flash relative to start of
5532exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005533 </td>
5534
5535 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005536 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005537 </td>
5538
5539 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005540 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005541 </td>
5542
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005543 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005544 <ul class="entry_tags">
5545 <li><a href="#tag_V1">V1</a></li>
5546 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005547 </td>
5548
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005549 </tr>
5550 <tr class="entries_header">
5551 <th class="th_details" colspan="5">Details</th>
5552 </tr>
5553 <tr class="entry_cont">
5554 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005555 <p>Clamped to (0,<wbr/> exposure time - flash
5556duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005557 </td>
5558 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005559
5560
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005561 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5562 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005563
5564
5565 <tr class="entry" id="dynamic_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005566 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005567 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005568 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005569 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005570 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005571
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005572 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005573
5574 <ul class="entry_type_enum">
5575 <li>
5576 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005577 <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 -08005578 </li>
5579 <li>
5580 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005581 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5582for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5583<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005584 </li>
5585 <li>
5586 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005587 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005588 </li>
5589 </ul>
5590
5591 </td> <!-- entry_type -->
5592
5593 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005594 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005595 </td>
5596
5597 <td class="entry_units">
5598 </td>
5599
5600 <td class="entry_range">
5601 </td>
5602
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005603 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005604 <ul class="entry_tags">
5605 <li><a href="#tag_BC">BC</a></li>
5606 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005607 </td>
5608
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005609 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005610 <tr class="entries_header">
5611 <th class="th_details" colspan="5">Details</th>
5612 </tr>
5613 <tr class="entry_cont">
5614 <td class="entry_details" colspan="5">
5615 <p>This control is only effective when flash unit is available
Zhijun Hebdc94c42014-01-21 18:28:30 -08005616(<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 -08005617<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/>
5618Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5619ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5620<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5621<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5622device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5623control should be used along with AE precapture metering sequence
5624(<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>
5625<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5626for 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 -08005627<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 -08005628 </td>
5629 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005630
5631
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005632 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5633 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005634
5635
5636 <tr class="entry" id="dynamic_android.flash.state">
Zhijun He5169ce12014-01-24 16:48:25 -08005637 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005638 android.<wbr/>flash.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005639 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005640 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005641 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005642
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005643 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005644
5645 <ul class="entry_type_enum">
5646 <li>
5647 <span class="entry_type_enum_name">UNAVAILABLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005648 <span class="entry_type_enum_notes"><p>No flash on camera</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005649 </li>
5650 <li>
5651 <span class="entry_type_enum_name">CHARGING</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005652 <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 -08005653charging and cannot be fired</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005654 </li>
5655 <li>
5656 <span class="entry_type_enum_name">READY</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005657 <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 -08005658ready to fire</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005659 </li>
5660 <li>
5661 <span class="entry_type_enum_name">FIRED</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005662 <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 -08005663for this capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005664 </li>
5665 </ul>
5666
5667 </td> <!-- entry_type -->
5668
5669 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005670 <p>Current state of the flash
Zhijun He5169ce12014-01-24 16:48:25 -08005671unit.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005672 </td>
5673
5674 <td class="entry_units">
5675 </td>
5676
5677 <td class="entry_range">
5678 </td>
5679
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005680 <td class="entry_tags">
5681 </td>
5682
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005683 </tr>
Zhijun He5169ce12014-01-24 16:48:25 -08005684 <tr class="entries_header">
5685 <th class="th_details" colspan="5">Details</th>
5686 </tr>
5687 <tr class="entry_cont">
5688 <td class="entry_details" colspan="5">
5689 <p>When the camera device doesn't have flash unit
5690(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/>
5691Other states indicate the current flash status.<wbr/></p>
5692 </td>
5693 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005694
5695
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005696 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5697 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005698
5699
5700
5701 <!-- end of kind -->
5702 </tbody>
5703
5704 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005705 <tr><td colspan="6" id="section_geometric" class="section">geometric</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005706
5707
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005708 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005709
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005710 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005711 <tr>
5712 <th class="th_name">Property Name</th>
5713 <th class="th_type">Type</th>
5714 <th class="th_description">Description</th>
5715 <th class="th_units">Units</th>
5716 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005717 <th class="th_tags">Tags</th>
5718 </tr>
5719 </thead>
5720
5721 <tbody>
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732 <tr class="entry" id="controls_android.geometric.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005733 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005734 android.<wbr/>geometric.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005735 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005736 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005737 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005738
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005739 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005740
5741 <ul class="entry_type_enum">
5742 <li>
5743 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005744 <span class="entry_type_enum_notes"><p>No geometric correction is
5745applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005746 </li>
5747 <li>
5748 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005749 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw
5750bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005751 </li>
5752 <li>
5753 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005754 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5755quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005756 </li>
5757 </ul>
5758
5759 </td> <!-- entry_type -->
5760
5761 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005762 <p>Operating mode of geometric
5763correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005764 </td>
5765
5766 <td class="entry_units">
5767 </td>
5768
5769 <td class="entry_range">
5770 </td>
5771
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005772 <td class="entry_tags">
5773 </td>
5774
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005775 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005776
5777
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005778 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5779 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005780
5781
5782 <tr class="entry" id="controls_android.geometric.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005783 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005784 android.<wbr/>geometric.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005785 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005786 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005787 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005788
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005789 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005790
5791
5792 </td> <!-- entry_type -->
5793
5794 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005795 <p>Control the amount of shading correction
5796applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005797 </td>
5798
5799 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005800 unitless: 1-10; 10 is full shading
5801 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005802 </td>
5803
5804 <td class="entry_range">
5805 </td>
5806
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005807 <td class="entry_tags">
5808 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005809 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005810 </ul>
5811 </td>
5812
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005813 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005814
5815
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005816 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5817 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005818
5819
5820
5821 <!-- end of kind -->
5822 </tbody>
5823
5824 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005825 <tr><td colspan="6" id="section_hotPixel" class="section">hotPixel</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005826
5827
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005828 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005829
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005830 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005831 <tr>
5832 <th class="th_name">Property Name</th>
5833 <th class="th_type">Type</th>
5834 <th class="th_description">Description</th>
5835 <th class="th_units">Units</th>
5836 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005837 <th class="th_tags">Tags</th>
5838 </tr>
5839 </thead>
5840
5841 <tbody>
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852 <tr class="entry" id="controls_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005853 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005854 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005855 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005856 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005857 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005858
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005859 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005860
5861 <ul class="entry_type_enum">
5862 <li>
5863 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005864 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
5865applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005866 </li>
5867 <li>
5868 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005869 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
5870Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005871 </li>
5872 <li>
5873 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005874 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5875quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005876 </li>
5877 </ul>
5878
5879 </td> <!-- entry_type -->
5880
5881 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005882 <p>Set operational mode for hot pixel
5883correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005884 </td>
5885
5886 <td class="entry_units">
5887 </td>
5888
5889 <td class="entry_range">
5890 </td>
5891
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005892 <td class="entry_tags">
5893 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005894 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005895 </ul>
5896 </td>
5897
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005898 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005899
5900
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005901 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5902 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005903
5904
5905
5906 <!-- end of kind -->
5907 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005908 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005909
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005910 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005911 <tr>
5912 <th class="th_name">Property Name</th>
5913 <th class="th_type">Type</th>
5914 <th class="th_description">Description</th>
5915 <th class="th_units">Units</th>
5916 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005917 <th class="th_tags">Tags</th>
5918 </tr>
5919 </thead>
5920
5921 <tbody>
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934 <tr class="entry" id="static_android.hotPixel.info.map">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005935 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005936 android.<wbr/>hot<wbr/>Pixel.<wbr/>info.<wbr/>map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005937 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005938 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005939 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005940 <span class="entry_type_container">x</span>
5941
5942 <span class="entry_type_array">
5943 2 x n
5944 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005945 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08005946 <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 -08005947
5948
5949 </td> <!-- entry_type -->
5950
5951 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005952 <p>Location of hot/<wbr/>defective pixels on
5953sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005954 </td>
5955
5956 <td class="entry_units">
5957 </td>
5958
5959 <td class="entry_range">
5960 </td>
5961
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005962 <td class="entry_tags">
5963 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005964 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005965 </ul>
5966 </td>
5967
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005968 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005969
5970
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005971 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5972 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005973
5974
5975
5976
5977
5978
5979 <!-- end of kind -->
5980 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005981 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005982
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005983 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005984 <tr>
5985 <th class="th_name">Property Name</th>
5986 <th class="th_type">Type</th>
5987 <th class="th_description">Description</th>
5988 <th class="th_units">Units</th>
5989 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005990 <th class="th_tags">Tags</th>
5991 </tr>
5992 </thead>
5993
5994 <tbody>
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005 <tr class="entry" id="dynamic_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006006 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006007 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006008 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006009 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006010 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006011
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006012 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006013
6014 <ul class="entry_type_enum">
6015 <li>
6016 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006017 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
6018applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006019 </li>
6020 <li>
6021 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006022 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
6023Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006024 </li>
6025 <li>
6026 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006027 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
6028quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006029 </li>
6030 </ul>
6031
6032 </td> <!-- entry_type -->
6033
6034 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006035 <p>Set operational mode for hot pixel
6036correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006037 </td>
6038
6039 <td class="entry_units">
6040 </td>
6041
6042 <td class="entry_range">
6043 </td>
6044
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006045 <td class="entry_tags">
6046 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006047 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006048 </ul>
6049 </td>
6050
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006051 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006052
6053
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006054 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6055 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006056
6057
6058
6059 <!-- end of kind -->
6060 </tbody>
6061
6062 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006063 <tr><td colspan="6" id="section_jpeg" class="section">jpeg</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006064
6065
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006066 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006067
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006068 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006069 <tr>
6070 <th class="th_name">Property Name</th>
6071 <th class="th_type">Type</th>
6072 <th class="th_description">Description</th>
6073 <th class="th_units">Units</th>
6074 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006075 <th class="th_tags">Tags</th>
6076 </tr>
6077 </thead>
6078
6079 <tbody>
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090 <tr class="entry" id="controls_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006091 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006092 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006093 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006094 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006095 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006096 <span class="entry_type_container">x</span>
6097
6098 <span class="entry_type_array">
6099 3
6100 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006101 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006102 <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 -08006103
6104
6105 </td> <!-- entry_type -->
6106
6107 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006108 <p>GPS coordinates to include in output JPEG
6109EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006110 </td>
6111
6112 <td class="entry_units">
6113 </td>
6114
6115 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006116 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006117 </td>
6118
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006119 <td class="entry_tags">
6120 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006121 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006122 </ul>
6123 </td>
6124
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006125 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006126
6127
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006128 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6129 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006130
6131
6132 <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006133 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006134 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006135 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006136 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006137 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006138
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006139 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006140
6141
6142 </td> <!-- entry_type -->
6143
6144 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006145 <p>32 characters describing GPS algorithm to
6146include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006147 </td>
6148
6149 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006150 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006151 </td>
6152
6153 <td class="entry_range">
6154 </td>
6155
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006156 <td class="entry_tags">
6157 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006158 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006159 </ul>
6160 </td>
6161
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006162 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006163
6164
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006165 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6166 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006167
6168
6169 <tr class="entry" id="controls_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006170 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006171 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006172 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006173 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006174 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006175
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006176 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006177
6178
6179 </td> <!-- entry_type -->
6180
6181 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006182 <p>Time GPS fix was made to include in
6183EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006184 </td>
6185
6186 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006187 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006188 </td>
6189
6190 <td class="entry_range">
6191 </td>
6192
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006193 <td class="entry_tags">
6194 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006195 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006196 </ul>
6197 </td>
6198
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006199 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006200
6201
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006202 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6203 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006204
6205
6206 <tr class="entry" id="controls_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006207 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006208 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006209 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006210 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006211 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006212
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006213 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006214
6215
6216 </td> <!-- entry_type -->
6217
6218 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006219 <p>Orientation of JPEG image to
6220write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006221 </td>
6222
6223 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006224 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006225 </td>
6226
6227 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006228 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006229 </td>
6230
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006231 <td class="entry_tags">
6232 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006233 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006234 </ul>
6235 </td>
6236
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006237 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006238
6239
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006240 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6241 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006242
6243
6244 <tr class="entry" id="controls_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006245 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006246 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006247 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006248 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006249 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006250
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006251 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006252
6253
6254 </td> <!-- entry_type -->
6255
6256 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006257 <p>Compression quality of the final JPEG
6258image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006259 </td>
6260
6261 <td class="entry_units">
6262 </td>
6263
6264 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006265 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006266 </td>
6267
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006268 <td class="entry_tags">
6269 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006270 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006271 </ul>
6272 </td>
6273
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006274 </tr>
6275 <tr class="entries_header">
6276 <th class="th_details" colspan="5">Details</th>
6277 </tr>
6278 <tr class="entry_cont">
6279 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006280 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006281 </td>
6282 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006283
6284
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006285 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6286 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006287
6288
6289 <tr class="entry" id="controls_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006290 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006291 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006292 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006293 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006294 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006295
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006296 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006297
6298
6299 </td> <!-- entry_type -->
6300
6301 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006302 <p>Compression quality of JPEG
6303thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006304 </td>
6305
6306 <td class="entry_units">
6307 </td>
6308
6309 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006310 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006311 </td>
6312
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006313 <td class="entry_tags">
6314 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006315 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006316 </ul>
6317 </td>
6318
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006319 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006320
6321
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006322 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6323 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006324
6325
6326 <tr class="entry" id="controls_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006327 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006328 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006329 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006330 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006331 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006332 <span class="entry_type_container">x</span>
6333
6334 <span class="entry_type_array">
6335 2
6336 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006337 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006338
6339
6340 </td> <!-- entry_type -->
6341
6342 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006343 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006344 </td>
6345
6346 <td class="entry_units">
6347 </td>
6348
6349 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006350 <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 -08006351 </td>
6352
6353 <td class="entry_tags">
6354 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006355 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006356 </ul>
6357 </td>
6358
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006359 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006360 <tr class="entries_header">
6361 <th class="th_details" colspan="5">Details</th>
6362 </tr>
6363 <tr class="entry_cont">
6364 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006365 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6366but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006367<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6368the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006369 </td>
6370 </tr>
6371
6372
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006373 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6374 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006375
6376
6377
6378 <!-- end of kind -->
6379 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006380 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006381
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006382 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006383 <tr>
6384 <th class="th_name">Property Name</th>
6385 <th class="th_type">Type</th>
6386 <th class="th_description">Description</th>
6387 <th class="th_units">Units</th>
6388 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006389 <th class="th_tags">Tags</th>
6390 </tr>
6391 </thead>
6392
6393 <tbody>
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404 <tr class="entry" id="static_android.jpeg.availableThumbnailSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006405 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006406 android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006407 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006408 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006409 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006410 <span class="entry_type_container">x</span>
6411
6412 <span class="entry_type_array">
6413 2 x n
6414 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006415 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006416
6417
6418 </td> <!-- entry_type -->
6419
6420 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006421 <p>Supported resolutions for the JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006422 </td>
6423
6424 <td class="entry_units">
6425 </td>
6426
6427 <td class="entry_range">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006428 <p>Will include at least one valid resolution,<wbr/> plus
6429(0,<wbr/>0) for no thumbnail generation,<wbr/> and each size will be distinct.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006430 </td>
6431
6432 <td class="entry_tags">
6433 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006434 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006435 </ul>
6436 </td>
6437
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006438 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006439 <tr class="entries_header">
6440 <th class="th_details" colspan="5">Details</th>
6441 </tr>
6442 <tr class="entry_cont">
6443 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006444 <p>Below condiditions will be satisfied for this size list:</p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006445<ul>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006446<li>The sizes will be sorted by increasing pixel area (width x height).<wbr/>
6447If several resolutions have the same area,<wbr/> they will be sorted by increasing width.<wbr/></li>
6448<li>The aspect ratio of the largest thumbnail size will be same as the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006449aspect 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 -08006450The largest size is defined as the size that has the largest pixel area
Igor Murashkin0b080452013-12-27 15:30:25 -08006451in a given size list.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006452<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 -08006453one corresponding size that has the same aspect ratio in availableThumbnailSizes,<wbr/>
6454and vice versa.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006455<li>All non (0,<wbr/> 0) sizes will have non-zero widths and heights.<wbr/></li>
Igor Murashkin0b080452013-12-27 15:30:25 -08006456</ul>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006457 </td>
6458 </tr>
6459
6460
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006461 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6462 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006463
6464
6465 <tr class="entry" id="static_android.jpeg.maxSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006466 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006467 android.<wbr/>jpeg.<wbr/>max<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006468 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006469 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006470 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006471
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006472 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006473
6474
6475 </td> <!-- entry_type -->
6476
6477 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006478 <p>Maximum size in bytes for the compressed
6479JPEG buffer</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006480 </td>
6481
6482 <td class="entry_units">
6483 </td>
6484
6485 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006486 <p>Must be large enough to fit any JPEG produced by
6487the camera</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006488 </td>
6489
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006490 <td class="entry_tags">
6491 </td>
6492
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006493 </tr>
6494 <tr class="entries_header">
6495 <th class="th_details" colspan="5">Details</th>
6496 </tr>
6497 <tr class="entry_cont">
6498 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006499 <p>This is used for sizing the gralloc buffers for
6500JPEG</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006501 </td>
6502 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006503
6504
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006505 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6506 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006507
6508
6509
6510 <!-- end of kind -->
6511 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006512 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006513
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006514 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006515 <tr>
6516 <th class="th_name">Property Name</th>
6517 <th class="th_type">Type</th>
6518 <th class="th_description">Description</th>
6519 <th class="th_units">Units</th>
6520 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006521 <th class="th_tags">Tags</th>
6522 </tr>
6523 </thead>
6524
6525 <tbody>
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536 <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006537 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006538 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006539 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006540 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006541 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006542 <span class="entry_type_container">x</span>
6543
6544 <span class="entry_type_array">
6545 3
6546 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006547 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006548 <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 -08006549
6550
6551 </td> <!-- entry_type -->
6552
6553 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006554 <p>GPS coordinates to include in output JPEG
6555EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006556 </td>
6557
6558 <td class="entry_units">
6559 </td>
6560
6561 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006562 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006563 </td>
6564
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006565 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006566 <ul class="entry_tags">
6567 <li><a href="#tag_BC">BC</a></li>
6568 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006569 </td>
6570
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006571 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006572
6573
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006574 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6575 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006576
6577
6578 <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006579 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006580 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006581 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006582 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006583 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006584
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006585 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006586
6587
6588 </td> <!-- entry_type -->
6589
6590 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006591 <p>32 characters describing GPS algorithm to
6592include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006593 </td>
6594
6595 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006596 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006597 </td>
6598
6599 <td class="entry_range">
6600 </td>
6601
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006602 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006603 <ul class="entry_tags">
6604 <li><a href="#tag_BC">BC</a></li>
6605 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006606 </td>
6607
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006608 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006609
6610
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006611 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6612 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006613
6614
6615 <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006616 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006617 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006618 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006619 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006620 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006621
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006622 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006623
6624
6625 </td> <!-- entry_type -->
6626
6627 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006628 <p>Time GPS fix was made to include in
6629EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006630 </td>
6631
6632 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006633 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006634 </td>
6635
6636 <td class="entry_range">
6637 </td>
6638
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006639 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006640 <ul class="entry_tags">
6641 <li><a href="#tag_BC">BC</a></li>
6642 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006643 </td>
6644
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006645 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006646
6647
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006648 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6649 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006650
6651
6652 <tr class="entry" id="dynamic_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006653 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006654 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006655 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006656 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006657 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006658
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006659 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006660
6661
6662 </td> <!-- entry_type -->
6663
6664 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006665 <p>Orientation of JPEG image to
6666write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006667 </td>
6668
6669 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006670 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006671 </td>
6672
6673 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006674 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006675 </td>
6676
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006677 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006678 <ul class="entry_tags">
6679 <li><a href="#tag_BC">BC</a></li>
6680 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006681 </td>
6682
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006683 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006684
6685
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006686 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6687 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006688
6689
6690 <tr class="entry" id="dynamic_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006691 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006692 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006693 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006694 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006695 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006696
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006697 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006698
6699
6700 </td> <!-- entry_type -->
6701
6702 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006703 <p>Compression quality of the final JPEG
6704image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006705 </td>
6706
6707 <td class="entry_units">
6708 </td>
6709
6710 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006711 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006712 </td>
6713
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006714 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006715 <ul class="entry_tags">
6716 <li><a href="#tag_BC">BC</a></li>
6717 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006718 </td>
6719
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006720 </tr>
6721 <tr class="entries_header">
6722 <th class="th_details" colspan="5">Details</th>
6723 </tr>
6724 <tr class="entry_cont">
6725 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006726 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006727 </td>
6728 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006729
6730
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006731 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6732 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006733
6734
6735 <tr class="entry" id="dynamic_android.jpeg.size">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006736 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006737 android.<wbr/>jpeg.<wbr/>size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006738 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006739 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006740 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006741
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006742 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006743
6744
6745 </td> <!-- entry_type -->
6746
6747 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006748 <p>The size of the compressed JPEG image,<wbr/> in
6749bytes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006750 </td>
6751
6752 <td class="entry_units">
6753 </td>
6754
6755 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08006756 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006757 </td>
6758
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006759 <td class="entry_tags">
6760 </td>
6761
6762 </tr>
6763 <tr class="entries_header">
6764 <th class="th_details" colspan="5">Details</th>
6765 </tr>
6766 <tr class="entry_cont">
6767 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006768 <p>If no JPEG output is produced for the request,<wbr/>
6769this must be 0.<wbr/></p>
6770<p>Otherwise,<wbr/> this describes the real size of the compressed
6771JPEG image placed in the output stream.<wbr/> More specifically,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006772if <a href="#static_android.jpeg.maxSize">android.<wbr/>jpeg.<wbr/>max<wbr/>Size</a> = 1000000,<wbr/> and a specific capture
6773has <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 -08006774the JPEG stream will be 1000000 bytes,<wbr/> of which the first
6775500000 make up the real data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006776 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006777 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006778
6779
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006780 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6781 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006782
6783
6784 <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006785 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006786 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006787 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006788 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006789 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006790
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006791 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006792
6793
6794 </td> <!-- entry_type -->
6795
6796 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006797 <p>Compression quality of JPEG
6798thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006799 </td>
6800
6801 <td class="entry_units">
6802 </td>
6803
6804 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006805 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006806 </td>
6807
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006808 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006809 <ul class="entry_tags">
6810 <li><a href="#tag_BC">BC</a></li>
6811 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006812 </td>
6813
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006814 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006815
6816
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006817 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6818 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006819
6820
6821 <tr class="entry" id="dynamic_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006822 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006823 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006824 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006825 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006826 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006827 <span class="entry_type_container">x</span>
6828
6829 <span class="entry_type_array">
6830 2
6831 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006832 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006833
6834
6835 </td> <!-- entry_type -->
6836
6837 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006838 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006839 </td>
6840
6841 <td class="entry_units">
6842 </td>
6843
6844 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006845 <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 -08006846 </td>
6847
6848 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006849 <ul class="entry_tags">
6850 <li><a href="#tag_BC">BC</a></li>
6851 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006852 </td>
6853
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006854 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006855 <tr class="entries_header">
6856 <th class="th_details" colspan="5">Details</th>
6857 </tr>
6858 <tr class="entry_cont">
6859 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006860 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6861but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006862<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6863the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006864 </td>
6865 </tr>
6866
6867
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006868 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6869 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006870
6871
6872
6873 <!-- end of kind -->
6874 </tbody>
6875
6876 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006877 <tr><td colspan="6" id="section_lens" class="section">lens</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006878
6879
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006880 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006881
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006882 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006883 <tr>
6884 <th class="th_name">Property Name</th>
6885 <th class="th_type">Type</th>
6886 <th class="th_description">Description</th>
6887 <th class="th_units">Units</th>
6888 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006889 <th class="th_tags">Tags</th>
6890 </tr>
6891 </thead>
6892
6893 <tbody>
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904 <tr class="entry" id="controls_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006905 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006906 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006907 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006908 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006909 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006910
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006911 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006912
6913
6914 </td> <!-- entry_type -->
6915
6916 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08006917 <p>The ratio of lens focal length to the effective
6918aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006919 </td>
6920
6921 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006922 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006923 </td>
6924
6925 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006926 <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 -08006927 </td>
6928
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006929 <td class="entry_tags">
6930 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006931 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006932 </ul>
6933 </td>
6934
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006935 </tr>
6936 <tr class="entries_header">
6937 <th class="th_details" colspan="5">Details</th>
6938 </tr>
6939 <tr class="entry_cont">
6940 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08006941 <p>This will only be supported on the camera devices that
6942have variable aperture lens.<wbr/> The aperture value can only be
6943one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
6944<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
6945this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
6946<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
6947to achieve manual exposure control.<wbr/></p>
6948<p>The requested aperture value may take several frames to reach the
6949requested value; the camera device will report the current (intermediate)
Zhijun He5169ce12014-01-24 16:48:25 -08006950aperture size in capture result metadata while the aperture is changing.<wbr/>
6951While 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 -08006952<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
6953the ON modes,<wbr/> this will be overridden by the camera device
6954auto-exposure algorithm,<wbr/> the overridden values are then provided
6955back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006956 </td>
6957 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006958
6959
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006960 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6961 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006962
6963
6964 <tr class="entry" id="controls_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006965 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006966 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006967 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006968 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006969 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006970
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006971 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006972
6973
6974 </td> <!-- entry_type -->
6975
6976 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006977 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006978 </td>
6979
6980 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006981 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006982 </td>
6983
6984 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006985 <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 -08006986 </td>
6987
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006988 <td class="entry_tags">
6989 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006990 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006991 </ul>
6992 </td>
6993
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006994 </tr>
6995 <tr class="entries_header">
6996 <th class="th_details" colspan="5">Details</th>
6997 </tr>
6998 <tr class="entry_cont">
6999 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007000 <p>This will not be supported on most camera devices.<wbr/> On devices
7001where this is supported,<wbr/> this may only be set to one of the
7002values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
7003<p>Lens filters are typically used to lower the amount of light the
7004sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
7005step is the standard logarithmic representation,<wbr/> which are
7006non-negative,<wbr/> and inversely proportional to the amount of light
7007hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
7008in no reduction of the incoming light,<wbr/> and setting this to 2 would
7009mean that the filter is set to reduce incoming light by two stops
7010(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08007011<p>It may take several frames before the lens filter density changes
7012to the requested value.<wbr/> While the filter density is still changing,<wbr/>
7013<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 -08007014 </td>
7015 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007016
7017
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007018 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7019 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007020
7021
7022 <tr class="entry" id="controls_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007023 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007024 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007025 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007026 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007027 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007028
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007029 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007030
7031
7032 </td> <!-- entry_type -->
7033
7034 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007035 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007036 </td>
7037
7038 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007039 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007040 </td>
7041
7042 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007043 <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 -08007044 </td>
7045
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007046 <td class="entry_tags">
7047 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007048 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007049 </ul>
7050 </td>
7051
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007052 </tr>
7053 <tr class="entries_header">
7054 <th class="th_details" colspan="5">Details</th>
7055 </tr>
7056 <tr class="entry_cont">
7057 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007058 <p>This setting controls the physical focal length of the camera
7059device's lens.<wbr/> Changing the focal length changes the field of
7060view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7061<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
7062setting won't be applied instantaneously,<wbr/> and it may take several
Zhijun He5169ce12014-01-24 16:48:25 -08007063frames before the lens can change to the requested focal length.<wbr/>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007064While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7065be set to MOVING.<wbr/></p>
7066<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007067 </td>
7068 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007069
7070
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007071 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7072 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007073
7074
7075 <tr class="entry" id="controls_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007076 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007077 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007078 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007079 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007080 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007081
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007082 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007083
7084
7085 </td> <!-- entry_type -->
7086
7087 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007088 <p>Distance to plane of sharpest focus,<wbr/>
7089measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007090 </td>
7091
7092 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007093 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007094 </td>
7095
7096 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007097 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007098 </td>
7099
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007100 <td class="entry_tags">
7101 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007102 <li><a href="#tag_BC">BC</a></li>
7103 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007104 </ul>
7105 </td>
7106
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007107 </tr>
7108 <tr class="entries_header">
7109 <th class="th_details" colspan="5">Details</th>
7110 </tr>
7111 <tr class="entry_cont">
7112 <td class="entry_details" colspan="5">
Zhijun He5169ce12014-01-24 16:48:25 -08007113 <p>0 means infinity focus.<wbr/> Used value will be clamped
7114to [0,<wbr/> <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>].<wbr/></p>
7115<p>Like <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> this setting won't be applied
7116instantaneously,<wbr/> and it may take several frames before the lens
7117can move to the requested focus distance.<wbr/> While the lens is still moving,<wbr/>
7118<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 -08007119 </td>
7120 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007121
7122
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007123 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7124 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007125
7126
7127 <tr class="entry" id="controls_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007128 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007129 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007130 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007131 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007132 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007133
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007134 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007135
7136 <ul class="entry_type_enum">
7137 <li>
7138 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007139 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007140 </li>
7141 <li>
7142 <span class="entry_type_enum_name">ON</span>
7143 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007144 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007145 </li>
7146 </ul>
7147
7148 </td> <!-- entry_type -->
7149
7150 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007151 <p>Sets whether the camera device uses optical image stabilization (OIS)
7152when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007153 </td>
7154
7155 <td class="entry_units">
7156 </td>
7157
7158 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08007159 <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 -08007160 </td>
7161
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007162 <td class="entry_tags">
7163 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007164 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007165 </ul>
7166 </td>
7167
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007168 </tr>
7169 <tr class="entries_header">
7170 <th class="th_details" colspan="5">Details</th>
7171 </tr>
7172 <tr class="entry_cont">
7173 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08007174 <p>OIS is used to compensate for motion blur due to small movements of
7175the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
7176use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
7177allows for longer exposure times before camera shake becomes
7178apparent.<wbr/></p>
7179<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007180 </td>
7181 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007182
7183
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007184 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7185 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007186
7187
7188
7189 <!-- end of kind -->
7190 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007191 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007192
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007193 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007194 <tr>
7195 <th class="th_name">Property Name</th>
7196 <th class="th_type">Type</th>
7197 <th class="th_description">Description</th>
7198 <th class="th_units">Units</th>
7199 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007200 <th class="th_tags">Tags</th>
7201 </tr>
7202 </thead>
7203
7204 <tbody>
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217 <tr class="entry" id="static_android.lens.info.availableApertures">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007218 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007219 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007220 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007221 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007222 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007223 <span class="entry_type_container">x</span>
7224
7225 <span class="entry_type_array">
7226 n
7227 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007228 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007229
7230
7231 </td> <!-- entry_type -->
7232
7233 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007234 <p>List of supported aperture
Zhijun He1b58d382014-01-10 10:22:53 -08007235values.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007236 </td>
7237
7238 <td class="entry_units">
7239 </td>
7240
7241 <td class="entry_range">
Zhijun He5169ce12014-01-24 16:48:25 -08007242 <p>one entry required,<wbr/> &gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007243 </td>
7244
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007245 <td class="entry_tags">
7246 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007247 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007248 </ul>
7249 </td>
7250
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007251 </tr>
7252 <tr class="entries_header">
7253 <th class="th_details" colspan="5">Details</th>
7254 </tr>
7255 <tr class="entry_cont">
7256 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007257 <p>If the camera device doesn't support variable apertures,<wbr/>
7258listed value will be the fixed aperture.<wbr/></p>
7259<p>If the camera device supports variable apertures,<wbr/> the aperture value
7260in this list will be sorted in ascending order.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007261 </td>
7262 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007263
7264
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007265 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7266 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007267
7268
7269 <tr class="entry" id="static_android.lens.info.availableFilterDensities">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007270 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007271 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007272 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007273 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007274 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007275 <span class="entry_type_container">x</span>
7276
7277 <span class="entry_type_array">
7278 n
7279 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007280 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007281
7282
7283 </td> <!-- entry_type -->
7284
7285 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007286 <p>List of supported neutral density filter values for
7287<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007288 </td>
7289
7290 <td class="entry_units">
7291 </td>
7292
7293 <td class="entry_range">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007294 <p>At least one value is required.<wbr/> Values must be &gt;= 0.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007295 </td>
7296
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007297 <td class="entry_tags">
7298 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007299 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007300 </ul>
7301 </td>
7302
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007303 </tr>
7304 <tr class="entries_header">
7305 <th class="th_details" colspan="5">Details</th>
7306 </tr>
7307 <tr class="entry_cont">
7308 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007309 <p>If changing <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> is not supported,<wbr/>
7310availableFilterDensities must contain only 0.<wbr/> Otherwise,<wbr/> this
7311list contains only the exact filter density values available on
7312this camera device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007313 </td>
7314 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007315
7316
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007317 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7318 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007319
7320
7321 <tr class="entry" id="static_android.lens.info.availableFocalLengths">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007322 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007323 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007324 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007325 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007326 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007327 <span class="entry_type_container">x</span>
7328
7329 <span class="entry_type_array">
7330 n
7331 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007332 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007333 <div class="entry_type_notes">The list of available focal lengths</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007334
7335
7336 </td> <!-- entry_type -->
7337
7338 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007339 <p>The available focal lengths for this device for use with
7340<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007341 </td>
7342
7343 <td class="entry_units">
7344 </td>
7345
7346 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007347 <p>Each value in this list must be &gt; 0.<wbr/> This list must
7348contain at least one value.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007349 </td>
7350
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007351 <td class="entry_tags">
7352 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007353 <li><a href="#tag_BC">BC</a></li>
7354 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007355 </ul>
7356 </td>
7357
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007358 </tr>
7359 <tr class="entries_header">
7360 <th class="th_details" colspan="5">Details</th>
7361 </tr>
7362 <tr class="entry_cont">
7363 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007364 <p>If optical zoom is not supported,<wbr/> this will only report
7365a single value corresponding to the static focal length of the
7366device.<wbr/> Otherwise,<wbr/> this will report every focal length supported
7367by the device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007368 </td>
7369 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007370
7371
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007372 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7373 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007374
7375
7376 <tr class="entry" id="static_android.lens.info.availableOpticalStabilization">
Ruben Brunk218639c2014-01-15 18:09:41 -08007377 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007378 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007379 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007380 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007381 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007382 <span class="entry_type_container">x</span>
7383
7384 <span class="entry_type_array">
7385 n
7386 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007387 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007388 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007389
7390
7391 </td> <!-- entry_type -->
7392
7393 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007394 <p>List containing a subset of the optical image
7395stabilization (OIS) modes specified in
7396<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 -08007397 </td>
7398
7399 <td class="entry_units">
7400 </td>
7401
7402 <td class="entry_range">
7403 </td>
7404
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007405 <td class="entry_tags">
7406 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007407 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007408 </ul>
7409 </td>
7410
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007411 </tr>
Ruben Brunk218639c2014-01-15 18:09:41 -08007412 <tr class="entries_header">
7413 <th class="th_details" colspan="5">Details</th>
7414 </tr>
7415 <tr class="entry_cont">
7416 <td class="entry_details" colspan="5">
7417 <p>If OIS is not implemented for a given camera device,<wbr/> this should
7418contain only OFF.<wbr/></p>
7419 </td>
7420 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007421
7422
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007423 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7424 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007425
7426
7427 <tr class="entry" id="static_android.lens.info.geometricCorrectionMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007428 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007429 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007430 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007431 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007432 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007433 <span class="entry_type_container">x</span>
7434
7435 <span class="entry_type_array">
7436 2 x 3 x n x m
7437 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007438 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007439 <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 -08007440
7441
7442 </td> <!-- entry_type -->
7443
7444 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007445 <p>A low-resolution map for correction of
7446geometric distortions and chromatic aberrations,<wbr/> per
7447color channel</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007448 </td>
7449
7450 <td class="entry_units">
7451 </td>
7452
7453 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007454 <p>N,<wbr/> M &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007455 </td>
7456
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007457 <td class="entry_tags">
7458 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007459 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007460 </ul>
7461 </td>
7462
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007463 </tr>
7464 <tr class="entries_header">
7465 <th class="th_details" colspan="5">Details</th>
7466 </tr>
7467 <tr class="entry_cont">
7468 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007469 <p>[DNG wants a function instead].<wbr/> What's easiest
7470for implementers? With an array size (M,<wbr/> N),<wbr/> entry (i,<wbr/>
7471j) provides the destination for pixel (i/<wbr/>(M-1) * width,<wbr/>
7472j/<wbr/>(N-1) * height).<wbr/> Data is row-major,<wbr/> with each array
7473entry 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 -08007474 </td>
7475 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007476
7477
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007478 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7479 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007480
7481
7482 <tr class="entry" id="static_android.lens.info.geometricCorrectionMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007483 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007484 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007485 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007486 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007487 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007488 <span class="entry_type_container">x</span>
7489
7490 <span class="entry_type_array">
7491 2
7492 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007493 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007494 <div class="entry_type_notes">width and height of geometric correction map</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007495
7496
7497 </td> <!-- entry_type -->
7498
7499 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007500 <p>Dimensions of geometric correction
7501map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007502 </td>
7503
7504 <td class="entry_units">
7505 </td>
7506
7507 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007508 <p>Both values &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007509 </td>
7510
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007511 <td class="entry_tags">
7512 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007513 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007514 </ul>
7515 </td>
7516
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007517 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007518
7519
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007520 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7521 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007522
7523
7524 <tr class="entry" id="static_android.lens.info.hyperfocalDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007525 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007526 android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007527 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007528 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007529 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007530
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007531 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007532
7533
7534 </td> <!-- entry_type -->
7535
7536 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007537 <p>Hyperfocal distance for this lens; set to
75380 if fixed focus</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007539 </td>
7540
7541 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007542 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007543 </td>
7544
7545 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007546 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007547 </td>
7548
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007549 <td class="entry_tags">
7550 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007551 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007552 </ul>
7553 </td>
7554
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007555 </tr>
7556 <tr class="entries_header">
7557 <th class="th_details" colspan="5">Details</th>
7558 </tr>
7559 <tr class="entry_cont">
7560 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007561 <p>The hyperfocal distance is used for the old
7562API's 'fixed' setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007563 </td>
7564 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007565
7566
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007567 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7568 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007569
7570
7571 <tr class="entry" id="static_android.lens.info.minimumFocusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007572 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007573 android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007574 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007575 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007576 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007577
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007578 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007579
7580
7581 </td> <!-- entry_type -->
7582
7583 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007584 <p>Shortest distance from frontmost surface
7585of the lens that can be focused correctly</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007586 </td>
7587
7588 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007589 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007590 </td>
7591
7592 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007593 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007594 </td>
7595
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007596 <td class="entry_tags">
7597 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007598 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007599 </ul>
7600 </td>
7601
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007602 </tr>
7603 <tr class="entries_header">
7604 <th class="th_details" colspan="5">Details</th>
7605 </tr>
7606 <tr class="entry_cont">
7607 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007608 <p>If the lens is fixed-focus,<wbr/> this should be
76090</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007610 </td>
7611 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007612
7613
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007614 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7615 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007616
7617
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007618 <tr class="entry" id="static_android.lens.info.shadingMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007619 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007620 android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007621 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007622 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007623 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007624 <span class="entry_type_container">x</span>
7625
7626 <span class="entry_type_array">
7627 2
7628 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007629 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007630 <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 -08007631
7632
7633 </td> <!-- entry_type -->
7634
7635 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007636 <p>Dimensions of lens shading map.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007637 </td>
7638
7639 <td class="entry_units">
7640 </td>
7641
7642 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007643 <p>Both values &gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007644 </td>
7645
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007646 <td class="entry_tags">
7647 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007648 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007649 </ul>
7650 </td>
7651
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007652 </tr>
7653 <tr class="entries_header">
7654 <th class="th_details" colspan="5">Details</th>
7655 </tr>
7656 <tr class="entry_cont">
7657 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007658 <p>The map should be on the order of 30-40 rows and columns,<wbr/> and
7659must be smaller than 64x64.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007660 </td>
7661 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007662
7663
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007664 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7665 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007666
7667
7668
7669
7670
7671 <tr class="entry" id="static_android.lens.facing">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007672 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007673 android.<wbr/>lens.<wbr/>facing
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007674 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007675 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007676 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007677
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007678 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007679
7680 <ul class="entry_type_enum">
7681 <li>
7682 <span class="entry_type_enum_name">FRONT</span>
7683 </li>
7684 <li>
7685 <span class="entry_type_enum_name">BACK</span>
7686 </li>
7687 </ul>
7688
7689 </td> <!-- entry_type -->
7690
7691 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007692 <p>Direction the camera faces relative to
7693device screen</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007694 </td>
7695
7696 <td class="entry_units">
7697 </td>
7698
7699 <td class="entry_range">
7700 </td>
7701
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007702 <td class="entry_tags">
7703 </td>
7704
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007705 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007706
7707
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007708 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7709 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007710
7711
7712 <tr class="entry" id="static_android.lens.opticalAxisAngle">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007713 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007714 android.<wbr/>lens.<wbr/>optical<wbr/>Axis<wbr/>Angle
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007715 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007716 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007717 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007718 <span class="entry_type_container">x</span>
7719
7720 <span class="entry_type_array">
7721 2
7722 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007723 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007724 <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 -08007725
7726
7727 </td> <!-- entry_type -->
7728
7729 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007730 <p>Relative angle of camera optical axis to the
7731perpendicular axis from the display</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007732 </td>
7733
7734 <td class="entry_units">
7735 </td>
7736
7737 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007738 <p>[0-90) for first angle,<wbr/> [0-360) for second</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007739 </td>
7740
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007741 <td class="entry_tags">
7742 <ul class="entry_tags">
7743 <li><a href="#tag_ADV">ADV</a></li>
7744 </ul>
7745 </td>
7746
7747 </tr>
7748 <tr class="entries_header">
7749 <th class="th_details" colspan="5">Details</th>
7750 </tr>
7751 <tr class="entry_cont">
7752 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007753 <p>Examples:</p>
7754<p>(0,<wbr/>0) means that the camera optical axis
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007755is perpendicular to the display surface;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007756<p>(45,<wbr/>0) means that the camera points 45 degrees up when
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007757device is held upright;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007758<p>(45,<wbr/>90) means the camera points 45 degrees to the right when
7759the device is held upright.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007760<p>Use FACING field to determine perpendicular outgoing
Igor Murashkin0b080452013-12-27 15:30:25 -08007761direction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007762 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007763 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007764
7765
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007766 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7767 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007768
7769
7770 <tr class="entry" id="static_android.lens.position">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007771 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007772 android.<wbr/>lens.<wbr/>position
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007773 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007774 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007775 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007776 <span class="entry_type_container">x</span>
7777
7778 <span class="entry_type_array">
7779 3, location in mm, in the sensor coordinate
7780 system
7781 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007782 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007783
7784
7785 </td> <!-- entry_type -->
7786
7787 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007788 <p>Coordinates of camera optical axis on
7789device</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007790 </td>
7791
7792 <td class="entry_units">
7793 </td>
7794
7795 <td class="entry_range">
7796 </td>
7797
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007798 <td class="entry_tags">
7799 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007800 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007801 </ul>
7802 </td>
7803
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007804 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007805
7806
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007807 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7808 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007809
7810
7811
7812 <!-- end of kind -->
7813 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007814 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007815
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007816 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007817 <tr>
7818 <th class="th_name">Property Name</th>
7819 <th class="th_type">Type</th>
7820 <th class="th_description">Description</th>
7821 <th class="th_units">Units</th>
7822 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007823 <th class="th_tags">Tags</th>
7824 </tr>
7825 </thead>
7826
7827 <tbody>
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838 <tr class="entry" id="dynamic_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007839 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007840 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007841 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007842 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007843 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007844
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007845 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007846
7847
7848 </td> <!-- entry_type -->
7849
7850 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08007851 <p>The ratio of lens focal length to the effective
7852aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007853 </td>
7854
7855 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007856 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007857 </td>
7858
7859 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007860 <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 -08007861 </td>
7862
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007863 <td class="entry_tags">
7864 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007865 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007866 </ul>
7867 </td>
7868
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007869 </tr>
7870 <tr class="entries_header">
7871 <th class="th_details" colspan="5">Details</th>
7872 </tr>
7873 <tr class="entry_cont">
7874 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007875 <p>This will only be supported on the camera devices that
7876have variable aperture lens.<wbr/> The aperture value can only be
7877one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
7878<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
7879this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
7880<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
7881to achieve manual exposure control.<wbr/></p>
7882<p>The requested aperture value may take several frames to reach the
7883requested value; the camera device will report the current (intermediate)
Zhijun He5169ce12014-01-24 16:48:25 -08007884aperture size in capture result metadata while the aperture is changing.<wbr/>
7885While 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 -08007886<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
7887the ON modes,<wbr/> this will be overridden by the camera device
7888auto-exposure algorithm,<wbr/> the overridden values are then provided
7889back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007890 </td>
7891 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007892
7893
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007894 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7895 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007896
7897
7898 <tr class="entry" id="dynamic_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007899 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007900 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007901 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007902 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007903 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007904
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007905 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007906
7907
7908 </td> <!-- entry_type -->
7909
7910 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007911 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007912 </td>
7913
7914 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007915 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007916 </td>
7917
7918 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007919 <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 -08007920 </td>
7921
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007922 <td class="entry_tags">
7923 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007924 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007925 </ul>
7926 </td>
7927
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007928 </tr>
7929 <tr class="entries_header">
7930 <th class="th_details" colspan="5">Details</th>
7931 </tr>
7932 <tr class="entry_cont">
7933 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007934 <p>This will not be supported on most camera devices.<wbr/> On devices
7935where this is supported,<wbr/> this may only be set to one of the
7936values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
7937<p>Lens filters are typically used to lower the amount of light the
7938sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
7939step is the standard logarithmic representation,<wbr/> which are
7940non-negative,<wbr/> and inversely proportional to the amount of light
7941hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
7942in no reduction of the incoming light,<wbr/> and setting this to 2 would
7943mean that the filter is set to reduce incoming light by two stops
7944(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08007945<p>It may take several frames before the lens filter density changes
7946to the requested value.<wbr/> While the filter density is still changing,<wbr/>
7947<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 -08007948 </td>
7949 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007950
7951
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007952 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7953 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007954
7955
7956 <tr class="entry" id="dynamic_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007957 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007958 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007959 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007960 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007961 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007962
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007963 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007964
7965
7966 </td> <!-- entry_type -->
7967
7968 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007969 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007970 </td>
7971
7972 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007973 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007974 </td>
7975
7976 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007977 <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 -08007978 </td>
7979
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007980 <td class="entry_tags">
7981 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007982 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007983 </ul>
7984 </td>
7985
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007986 </tr>
7987 <tr class="entries_header">
7988 <th class="th_details" colspan="5">Details</th>
7989 </tr>
7990 <tr class="entry_cont">
7991 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007992 <p>This setting controls the physical focal length of the camera
7993device's lens.<wbr/> Changing the focal length changes the field of
7994view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7995<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
7996setting won't be applied instantaneously,<wbr/> and it may take several
Zhijun He5169ce12014-01-24 16:48:25 -08007997frames before the lens can change to the requested focal length.<wbr/>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007998While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7999be set to MOVING.<wbr/></p>
8000<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008001 </td>
8002 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008003
8004
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008005 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8006 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008007
8008
8009 <tr class="entry" id="dynamic_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008010 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008011 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008012 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008013 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008014 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008015
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008016 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008017
8018
8019 </td> <!-- entry_type -->
8020
8021 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008022 <p>Distance to plane of sharpest focus,<wbr/>
8023measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008024 </td>
8025
8026 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008027 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008028 </td>
8029
8030 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08008031 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008032 </td>
8033
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008034 <td class="entry_tags">
8035 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008036 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008037 </ul>
8038 </td>
8039
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008040 </tr>
8041 <tr class="entries_header">
8042 <th class="th_details" colspan="5">Details</th>
8043 </tr>
8044 <tr class="entry_cont">
8045 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008046 <p>Should be zero for fixed-focus cameras</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008047 </td>
8048 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008049
8050
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008051 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8052 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008053
8054
8055 <tr class="entry" id="dynamic_android.lens.focusRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008056 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008057 android.<wbr/>lens.<wbr/>focus<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008058 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008059 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008060 <span class="entry_type_name">float</span>
Zhijun He50451ad2013-09-26 10:27:47 -07008061 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008062
Zhijun He50451ad2013-09-26 10:27:47 -07008063 <span class="entry_type_array">
8064 2
8065 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008066 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08008067 <div class="entry_type_notes">Range of scene distances that are in focus</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008068
8069
8070 </td> <!-- entry_type -->
8071
8072 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008073 <p>The range of scene distances that are in
8074sharp focus (depth of field)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008075 </td>
8076
8077 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008078 pair of focus distances in diopters: (near,<wbr/>
8079 far)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008080 </td>
8081
8082 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08008083 <p>&gt;=0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008084 </td>
8085
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008086 <td class="entry_tags">
8087 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008088 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008089 </ul>
8090 </td>
8091
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008092 </tr>
8093 <tr class="entries_header">
8094 <th class="th_details" colspan="5">Details</th>
8095 </tr>
8096 <tr class="entry_cont">
8097 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008098 <p>If variable focus not supported,<wbr/> can still report
8099fixed depth of field range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008100 </td>
8101 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008102
8103
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008104 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8105 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008106
8107
8108 <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008109 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008110 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008111 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008112 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008113 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008114
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008115 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008116
8117 <ul class="entry_type_enum">
8118 <li>
8119 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008120 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008121 </li>
8122 <li>
8123 <span class="entry_type_enum_name">ON</span>
8124 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008125 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008126 </li>
8127 </ul>
8128
8129 </td> <!-- entry_type -->
8130
8131 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08008132 <p>Sets whether the camera device uses optical image stabilization (OIS)
8133when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008134 </td>
8135
8136 <td class="entry_units">
8137 </td>
8138
8139 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08008140 <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 -08008141 </td>
8142
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008143 <td class="entry_tags">
8144 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008145 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008146 </ul>
8147 </td>
8148
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008149 </tr>
8150 <tr class="entries_header">
8151 <th class="th_details" colspan="5">Details</th>
8152 </tr>
8153 <tr class="entry_cont">
8154 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08008155 <p>OIS is used to compensate for motion blur due to small movements of
8156the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
8157use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
8158allows for longer exposure times before camera shake becomes
8159apparent.<wbr/></p>
8160<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008161 </td>
8162 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008163
8164
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008165 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8166 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008167
8168
8169 <tr class="entry" id="dynamic_android.lens.state">
Zhijun He5169ce12014-01-24 16:48:25 -08008170 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008171 android.<wbr/>lens.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008172 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008173 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008174 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008175
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008176 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008177
8178 <ul class="entry_type_enum">
8179 <li>
8180 <span class="entry_type_enum_name">STATIONARY</span>
Zhijun He5169ce12014-01-24 16:48:25 -08008181 <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
8182android.<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 -08008183 </li>
Igor Murashkin0e323a12013-09-06 11:50:48 -07008184 <li>
8185 <span class="entry_type_enum_name">MOVING</span>
Zhijun He5169ce12014-01-24 16:48:25 -08008186 <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
8187android.<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 -07008188 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008189 </ul>
8190
8191 </td> <!-- entry_type -->
8192
8193 <td class="entry_description">
Zhijun He5169ce12014-01-24 16:48:25 -08008194 <p>Current lens status.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008195 </td>
8196
8197 <td class="entry_units">
8198 </td>
8199
8200 <td class="entry_range">
8201 </td>
8202
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008203 <td class="entry_tags">
8204 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008205 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008206 </ul>
8207 </td>
8208
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008209 </tr>
Zhijun He5169ce12014-01-24 16:48:25 -08008210 <tr class="entries_header">
8211 <th class="th_details" colspan="5">Details</th>
8212 </tr>
8213 <tr class="entry_cont">
8214 <td class="entry_details" colspan="5">
8215 <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/>
8216<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/>
8217they may take several frames to reach the requested values.<wbr/> This state indicates
8218the current status of the lens parameters.<wbr/></p>
8219<p>When the state is STATIONARY,<wbr/> the lens parameters are not changing.<wbr/> This could be
8220either because the parameters are all fixed,<wbr/> or because the lens has had enough
8221time to reach the most recently-requested values.<wbr/>
8222If all these lens parameters are not changable for a camera device,<wbr/> as listed below:</p>
8223<ul>
8224<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
8225<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> parameter will always be 0.<wbr/></li>
8226<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/>
8227which means the optical zoom is not supported.<wbr/></li>
8228<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>
8229<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>
8230</ul>
8231<p>Then this state will always be STATIONARY.<wbr/></p>
8232<p>When the state is MOVING,<wbr/> it indicates that at least one of the lens parameters
8233is changing.<wbr/></p>
8234 </td>
8235 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008236
8237
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008238 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8239 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008240
8241
8242
8243 <!-- end of kind -->
8244 </tbody>
8245
8246 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008247 <tr><td colspan="6" id="section_noiseReduction" class="section">noiseReduction</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008248
8249
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008250 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008251
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008252 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008253 <tr>
8254 <th class="th_name">Property Name</th>
8255 <th class="th_type">Type</th>
8256 <th class="th_description">Description</th>
8257 <th class="th_units">Units</th>
8258 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008259 <th class="th_tags">Tags</th>
8260 </tr>
8261 </thead>
8262
8263 <tbody>
8264
8265
8266
8267
8268
8269
8270
8271
8272
8273
8274 <tr class="entry" id="controls_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008275 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008276 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008277 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008278 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008279 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008280
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008281 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008282
8283 <ul class="entry_type_enum">
8284 <li>
8285 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008286 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008287 </li>
8288 <li>
8289 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008290 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8291output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008292 </li>
8293 <li>
8294 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008295 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8296quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008297 </li>
8298 </ul>
8299
8300 </td> <!-- entry_type -->
8301
8302 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008303 <p>Mode of operation for the noise reduction
8304algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008305 </td>
8306
8307 <td class="entry_units">
8308 </td>
8309
8310 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008311 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008312 </td>
8313
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008314 <td class="entry_tags">
8315 <ul class="entry_tags">
8316 <li><a href="#tag_V1">V1</a></li>
8317 </ul>
8318 </td>
8319
8320 </tr>
8321 <tr class="entries_header">
8322 <th class="th_details" colspan="5">Details</th>
8323 </tr>
8324 <tr class="entry_cont">
8325 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008326 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8327will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008328<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8329will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8330will use the highest-quality noise filtering algorithms,<wbr/>
8331even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008332slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008333 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008334 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008335
8336
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008337 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8338 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008339
8340
8341 <tr class="entry" id="controls_android.noiseReduction.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008342 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008343 android.<wbr/>noise<wbr/>Reduction.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008344 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008345 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008346 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008347
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008348 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008349
8350
8351 </td> <!-- entry_type -->
8352
8353 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008354 <p>Control the amount of noise reduction
8355applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008356 </td>
8357
8358 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008359 1-10; 10 is max noise reduction
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008360 </td>
8361
8362 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008363 <p>1 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008364 </td>
8365
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008366 <td class="entry_tags">
8367 </td>
8368
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008369 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008370
8371
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008372 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8373 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008374
8375
8376
8377 <!-- end of kind -->
8378 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008379 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008380
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008381 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008382 <tr>
8383 <th class="th_name">Property Name</th>
8384 <th class="th_type">Type</th>
8385 <th class="th_description">Description</th>
8386 <th class="th_units">Units</th>
8387 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008388 <th class="th_tags">Tags</th>
8389 </tr>
8390 </thead>
8391
8392 <tbody>
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403 <tr class="entry" id="dynamic_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008404 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008405 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008406 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008407 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008408 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008409
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008410 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008411
8412 <ul class="entry_type_enum">
8413 <li>
8414 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008415 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008416 </li>
8417 <li>
8418 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008419 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8420output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008421 </li>
8422 <li>
8423 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008424 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8425quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008426 </li>
8427 </ul>
8428
8429 </td> <!-- entry_type -->
8430
8431 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008432 <p>Mode of operation for the noise reduction
8433algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008434 </td>
8435
8436 <td class="entry_units">
8437 </td>
8438
8439 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008440 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008441 </td>
8442
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008443 <td class="entry_tags">
8444 <ul class="entry_tags">
8445 <li><a href="#tag_V1">V1</a></li>
8446 </ul>
8447 </td>
8448
8449 </tr>
8450 <tr class="entries_header">
8451 <th class="th_details" colspan="5">Details</th>
8452 </tr>
8453 <tr class="entry_cont">
8454 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008455 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8456will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008457<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8458will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8459will use the highest-quality noise filtering algorithms,<wbr/>
8460even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008461slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008462 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008463 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008464
8465
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008466 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8467 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008468
8469
8470
8471 <!-- end of kind -->
8472 </tbody>
8473
8474 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008475 <tr><td colspan="6" id="section_quirks" class="section">quirks</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008476
8477
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008478 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008479
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008480 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008481 <tr>
8482 <th class="th_name">Property Name</th>
8483 <th class="th_type">Type</th>
8484 <th class="th_description">Description</th>
8485 <th class="th_units">Units</th>
8486 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008487 <th class="th_tags">Tags</th>
8488 </tr>
8489 </thead>
8490
8491 <tbody>
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502 <tr class="entry" id="static_android.quirks.meteringCropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008503 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008504 android.<wbr/>quirks.<wbr/>metering<wbr/>Crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008505 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008506 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008507 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008508
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008509 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008510
8511
8512 </td> <!-- entry_type -->
8513
8514 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008515 <p>If set to 1,<wbr/> the camera service does not
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008516scale 'normalized' coordinates with respect to the crop
Igor Murashkin0b080452013-12-27 15:30:25 -08008517region.<wbr/> This applies to metering input (a{e,<wbr/>f,<wbr/>wb}Region
8518and output (face rectangles).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008519 </td>
8520
8521 <td class="entry_units">
8522 </td>
8523
8524 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008525 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008526 </td>
8527
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008528 <td class="entry_tags">
8529 </td>
8530
8531 </tr>
8532 <tr class="entries_header">
8533 <th class="th_details" colspan="5">Details</th>
8534 </tr>
8535 <tr class="entry_cont">
8536 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008537 <p>Normalized coordinates refer to those in the
8538(-1000,<wbr/>1000) range mentioned in the
8539android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008540<p>HAL implementations should instead always use and emit
Igor Murashkin0b080452013-12-27 15:30:25 -08008541sensor array-relative coordinates for all region data.<wbr/> Does
8542not need to be listed in static metadata.<wbr/> Support will be
8543removed in future versions of camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008544 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008545 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008546
8547
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008548 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8549 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008550
8551
8552 <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008553 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008554 android.<wbr/>quirks.<wbr/>trigger<wbr/>Af<wbr/>With<wbr/>Auto
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008555 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008556 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008557 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008558
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008559 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008560
8561
8562 </td> <!-- entry_type -->
8563
8564 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008565 <p>If set to 1,<wbr/> then the camera service always
8566switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF
8567trigger.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008568 </td>
8569
8570 <td class="entry_units">
8571 </td>
8572
8573 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008574 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008575 </td>
8576
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008577 <td class="entry_tags">
8578 </td>
8579
8580 </tr>
8581 <tr class="entries_header">
8582 <th class="th_details" colspan="5">Details</th>
8583 </tr>
8584 <tr class="entry_cont">
8585 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008586 <p>HAL implementations should implement AF trigger
8587modes for AUTO,<wbr/> MACRO,<wbr/> CONTINUOUS_<wbr/>FOCUS,<wbr/> and
8588CONTINUOUS_<wbr/>PICTURE modes instead of using this flag.<wbr/> Does
8589not need to be listed in static metadata.<wbr/> Support will be
8590removed in future versions of camera service</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008591 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008592 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008593
8594
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008595 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8596 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008597
8598
8599 <tr class="entry" id="static_android.quirks.useZslFormat">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008600 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008601 android.<wbr/>quirks.<wbr/>use<wbr/>Zsl<wbr/>Format
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008602 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008603 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008604 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008605
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008606 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008607
8608
8609 </td> <!-- entry_type -->
8610
8611 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008612 <p>If set to 1,<wbr/> the camera service uses
8613CAMERA2_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>ZSL instead of
8614HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED for the zero
8615shutter lag stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008616 </td>
8617
8618 <td class="entry_units">
8619 </td>
8620
8621 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008622 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008623 </td>
8624
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008625 <td class="entry_tags">
8626 </td>
8627
8628 </tr>
8629 <tr class="entries_header">
8630 <th class="th_details" colspan="5">Details</th>
8631 </tr>
8632 <tr class="entry_cont">
8633 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008634 <p>HAL implementations should use gralloc usage flags
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008635to determine that a stream will be used for
Igor Murashkin0b080452013-12-27 15:30:25 -08008636zero-shutter-lag,<wbr/> instead of relying on an explicit
8637format setting.<wbr/> Does not need to be listed in static
8638metadata.<wbr/> Support will be removed in future versions of
8639camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008640 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008641 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008642
8643
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008644 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8645 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008646
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008647
8648 <tr class="entry" id="static_android.quirks.usePartialResult">
Igor Murashkin7761a222014-01-27 16:06:38 -08008649 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008650 android.<wbr/>quirks.<wbr/>use<wbr/>Partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008651 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008652 <td class="entry_type">
8653 <span class="entry_type_name">byte</span>
8654
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008655 <span class="entry_type_visibility"> [hidden]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008656
8657
8658 </td> <!-- entry_type -->
8659
8660 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008661 <p>If set to 1,<wbr/> the HAL will always split result
8662metadata for a single capture into multiple buffers,<wbr/>
8663returned using multiple process_<wbr/>capture_<wbr/>result calls.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008664 </td>
8665
8666 <td class="entry_units">
8667 </td>
8668
8669 <td class="entry_range">
Igor Murashkin7761a222014-01-27 16:06:38 -08008670 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008671 </td>
8672
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008673 <td class="entry_tags">
8674 </td>
8675
8676 </tr>
8677 <tr class="entries_header">
8678 <th class="th_details" colspan="5">Details</th>
8679 </tr>
8680 <tr class="entry_cont">
8681 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008682 <p>Does not need to be listed in static
8683metadata.<wbr/> Support for partial results will be reworked in
8684future versions of camera service.<wbr/> This quirk will stop
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008685working at that point; DO NOT USE without careful
Igor Murashkin0b080452013-12-27 15:30:25 -08008686consideration of future support.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008687 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008688 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008689
Igor Murashkin7761a222014-01-27 16:06:38 -08008690 <tr class="entries_header">
8691 <th class="th_details" colspan="5">HAL Implementation Details</th>
8692 </tr>
8693 <tr class="entry_cont">
8694 <td class="entry_details" colspan="5">
8695 <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
8696for information on how to implement partial results.<wbr/></p>
8697 </td>
8698 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008699
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008700 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8701 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008702
8703
8704
8705 <!-- end of kind -->
8706 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008707 <tr><td colspan="6" class="kind">dynamic</td></tr>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008708
8709 <thead class="entries_header">
8710 <tr>
8711 <th class="th_name">Property Name</th>
8712 <th class="th_type">Type</th>
8713 <th class="th_description">Description</th>
8714 <th class="th_units">Units</th>
8715 <th class="th_range">Range</th>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008716 <th class="th_tags">Tags</th>
8717 </tr>
8718 </thead>
8719
8720 <tbody>
8721
8722
8723
8724
8725
8726
8727
8728
8729
8730
8731 <tr class="entry" id="dynamic_android.quirks.partialResult">
Igor Murashkin7761a222014-01-27 16:06:38 -08008732 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008733 android.<wbr/>quirks.<wbr/>partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008734 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008735 <td class="entry_type">
8736 <span class="entry_type_name entry_type_name_enum">byte</span>
8737
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008738 <span class="entry_type_visibility"> [hidden as boolean]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008739
8740 <ul class="entry_type_enum">
8741 <li>
8742 <span class="entry_type_enum_name">FINAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008743 <span class="entry_type_enum_notes"><p>The last or only metadata result buffer
8744for this capture.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008745 </li>
8746 <li>
8747 <span class="entry_type_enum_name">PARTIAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008748 <span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this
8749capture.<wbr/> More result buffers for this capture will be sent
8750by the HAL,<wbr/> the last of which will be marked
8751FINAL.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008752 </li>
8753 </ul>
8754
8755 </td> <!-- entry_type -->
8756
8757 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008758 <p>Whether a result given to the framework is the
8759final one for the capture,<wbr/> or only a partial that contains a
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008760subset of the full set of dynamic metadata
Igor Murashkin0b080452013-12-27 15:30:25 -08008761values.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008762 </td>
8763
8764 <td class="entry_units">
8765 </td>
8766
8767 <td class="entry_range">
Igor Murashkin7761a222014-01-27 16:06:38 -08008768 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> Optional.<wbr/> Default value is FINAL.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008769 </td>
8770
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008771 <td class="entry_tags">
8772 </td>
8773
8774 </tr>
8775 <tr class="entries_header">
8776 <th class="th_details" colspan="5">Details</th>
8777 </tr>
8778 <tr class="entry_cont">
8779 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008780 <p>The entries in the result metadata buffers for a
8781single capture may not overlap,<wbr/> except for this entry.<wbr/> The
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008782FINAL buffers must retain FIFO ordering relative to the
Igor Murashkin0b080452013-12-27 15:30:25 -08008783requests that generate them,<wbr/> so the FINAL buffer for frame 3 must
8784always be sent to the framework after the FINAL buffer for frame 2,<wbr/> and
8785before the FINAL buffer for frame 4.<wbr/> PARTIAL buffers may be returned
8786in any order relative to other frames,<wbr/> but all PARTIAL buffers for a given
8787capture must arrive before the FINAL buffer for that capture.<wbr/> This entry may
8788only be used by the HAL if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008789 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008790 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008791
Igor Murashkin7761a222014-01-27 16:06:38 -08008792 <tr class="entries_header">
8793 <th class="th_details" colspan="5">HAL Implementation Details</th>
8794 </tr>
8795 <tr class="entry_cont">
8796 <td class="entry_details" colspan="5">
8797 <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
8798for information on how to implement partial results.<wbr/></p>
8799 </td>
8800 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008801
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008802 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8803 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008804
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008805
8806
8807 <!-- end of kind -->
8808 </tbody>
8809
8810 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008811 <tr><td colspan="6" id="section_request" class="section">request</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008812
8813
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008814 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008815
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008816 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008817 <tr>
8818 <th class="th_name">Property Name</th>
8819 <th class="th_type">Type</th>
8820 <th class="th_description">Description</th>
8821 <th class="th_units">Units</th>
8822 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008823 <th class="th_tags">Tags</th>
8824 </tr>
8825 </thead>
8826
8827 <tbody>
8828
8829
8830
8831
8832
8833
8834
8835
8836
8837
8838 <tr class="entry" id="controls_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008839 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008840 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008841 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008842 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008843 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008844
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008845 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008846
8847
8848 </td> <!-- entry_type -->
8849
8850 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008851 <p>A frame counter set by the framework.<wbr/> Must
8852be maintained unchanged in output frame.<wbr/> This value monotonically
8853increases with every new result (that is,<wbr/> each new result has a unique
8854frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008855 </td>
8856
8857 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008858 incrementing integer
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008859 </td>
8860
8861 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008862 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> Any int.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008863 </td>
8864
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008865 <td class="entry_tags">
8866 </td>
8867
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008868 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008869
8870
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008871 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8872 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008873
8874
8875 <tr class="entry" id="controls_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008876 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008877 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008878 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008879 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008880 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008881
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008882 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008883
8884
8885 </td> <!-- entry_type -->
8886
8887 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008888 <p>An application-specified ID for the current
8889request.<wbr/> Must be maintained unchanged in output
8890frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008891 </td>
8892
8893 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008894 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008895 </td>
8896
8897 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008898 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008899 </td>
8900
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008901 <td class="entry_tags">
8902 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008903 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008904 </ul>
8905 </td>
8906
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008907 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008908
8909
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008910 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8911 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008912
8913
8914 <tr class="entry" id="controls_android.request.inputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008915 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008916 android.<wbr/>request.<wbr/>input<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008917 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008918 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07008919 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008920 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008921
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008922 <span class="entry_type_array">
8923 n
8924 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008925 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008926
8927
8928 </td> <!-- entry_type -->
8929
8930 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008931 <p>List which camera reprocess stream is used
8932for the source of reprocessing data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008933 </td>
8934
8935 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008936 List of camera reprocess stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008937 </td>
8938
8939 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008940 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
8941<p>Typically,<wbr/> only one entry allowed,<wbr/> must be a valid reprocess stream ID.<wbr/></p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008942<p>If android.<wbr/>jpeg.<wbr/>needs<wbr/>Thumbnail is set,<wbr/> then multiple
8943reprocess streams may be included in a single request; they
8944must be different scaled versions of the same image.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008945 </td>
8946
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008947 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008948 <ul class="entry_tags">
8949 <li><a href="#tag_HAL2">HAL2</a></li>
8950 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008951 </td>
8952
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008953 </tr>
8954 <tr class="entries_header">
8955 <th class="th_details" colspan="5">Details</th>
8956 </tr>
8957 <tr class="entry_cont">
8958 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008959 <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> ==
Igor Murashkin0b080452013-12-27 15:30:25 -08008960REPROCESS.<wbr/> Ignored otherwise</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008961 </td>
8962 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008963
8964
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008965 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8966 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008967
8968
8969 <tr class="entry" id="controls_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008970 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008971 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008972 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008973 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008974 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008975
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008976 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008977
8978 <ul class="entry_type_enum">
8979 <li>
8980 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008981 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
8982for application-bound buffer data.<wbr/> If no
8983application-bound streams exist,<wbr/> no frame should be
8984placed in the output frame queue.<wbr/> If such streams
8985exist,<wbr/> a frame should be placed on the output queue
8986with null metadata but with the necessary output buffer
8987information.<wbr/> Timestamp information should still be
8988included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008989 </li>
8990 <li>
8991 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008992 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
8993only be produced if they are separately
8994enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008995 </li>
8996 </ul>
8997
8998 </td> <!-- entry_type -->
8999
9000 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009001 <p>How much metadata to produce on
9002output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009003 </td>
9004
9005 <td class="entry_units">
9006 </td>
9007
9008 <td class="entry_range">
9009 </td>
9010
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009011 <td class="entry_tags">
9012 </td>
9013
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009014 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009015
9016
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009017 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9018 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009019
9020
9021 <tr class="entry" id="controls_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009022 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009023 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009024 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009025 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009026 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009027 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009028
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009029 <span class="entry_type_array">
9030 n
9031 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009032 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009033
9034
9035 </td> <!-- entry_type -->
9036
9037 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009038 <p>Lists which camera output streams image data
9039from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009040 </td>
9041
9042 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009043 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009044 </td>
9045
9046 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08009047 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> List must only include streams that have been
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009048created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009049 </td>
9050
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009051 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009052 <ul class="entry_tags">
9053 <li><a href="#tag_HAL2">HAL2</a></li>
9054 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009055 </td>
9056
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009057 </tr>
9058 <tr class="entries_header">
9059 <th class="th_details" colspan="5">Details</th>
9060 </tr>
9061 <tr class="entry_cont">
9062 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009063 <p>If no output streams are listed,<wbr/> then the image
9064data should simply be discarded.<wbr/> The image data must
9065still be captured for metadata and statistics production,<wbr/>
9066and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009067 </td>
9068 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009069
9070
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009071 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9072 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009073
9074
9075 <tr class="entry" id="controls_android.request.type">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009076 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009077 android.<wbr/>request.<wbr/>type
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009078 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009079 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009080 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009081
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009082 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009083
9084 <ul class="entry_type_enum">
9085 <li>
9086 <span class="entry_type_enum_name">CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009087 <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
9088and process it according to the
9089settings</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009090 </li>
9091 <li>
9092 <span class="entry_type_enum_name">REPROCESS</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009093 <span class="entry_type_enum_notes"><p>Process previously captured data; the
9094android.<wbr/>request.<wbr/>input<wbr/>Stream parameter determines the
9095source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
9096needed for reprocessing with [RP]</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009097 </li>
9098 </ul>
9099
9100 </td> <!-- entry_type -->
9101
9102 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009103 <p>The type of the request; either CAPTURE or
9104REPROCESS.<wbr/> For HAL3,<wbr/> this tag is redundant.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009105 </td>
9106
9107 <td class="entry_units">
9108 </td>
9109
9110 <td class="entry_range">
9111 </td>
9112
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009113 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009114 <ul class="entry_tags">
9115 <li><a href="#tag_HAL2">HAL2</a></li>
9116 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009117 </td>
9118
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009119 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009120
9121
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009122 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9123 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009124
9125
9126
9127 <!-- end of kind -->
9128 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009129 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009130
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009131 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009132 <tr>
9133 <th class="th_name">Property Name</th>
9134 <th class="th_type">Type</th>
9135 <th class="th_description">Description</th>
9136 <th class="th_units">Units</th>
9137 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009138 <th class="th_tags">Tags</th>
9139 </tr>
9140 </thead>
9141
9142 <tbody>
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153 <tr class="entry" id="static_android.request.maxNumOutputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009154 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009155 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009156 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009157 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009158 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009159 <span class="entry_type_container">x</span>
9160
9161 <span class="entry_type_array">
9162 3
9163 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009164 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009165
9166
9167 </td> <!-- entry_type -->
9168
9169 <td class="entry_description">
Zhijun He12744b22014-01-22 15:58:57 -08009170 <p>The maximum numbers of different types of output streams
9171that can be configured and used simultaneously by a camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009172 </td>
9173
9174 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009175 </td>
9176
9177 <td class="entry_range">
Zhijun He12744b22014-01-22 15:58:57 -08009178 <p>&gt;= 1 for JPEG-compressed format streams.<wbr/></p>
9179<p>&gt;= 0 for Raw format streams.<wbr/></p>
9180<p>&gt;= 3 for processed,<wbr/> uncompressed format streams.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009181 </td>
9182
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009183 <td class="entry_tags">
9184 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009185 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009186 </ul>
9187 </td>
9188
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009189 </tr>
9190 <tr class="entries_header">
9191 <th class="th_details" colspan="5">Details</th>
9192 </tr>
9193 <tr class="entry_cont">
9194 <td class="entry_details" colspan="5">
Zhijun He12744b22014-01-22 15:58:57 -08009195 <p>This is a 3 element tuple that contains the max number of output simultaneous
9196streams for raw sensor,<wbr/> processed (and uncompressed),<wbr/> and JPEG formats respectively.<wbr/>
9197For example,<wbr/> if max raw sensor format output stream number is 1,<wbr/> max YUV streams
9198number is 3,<wbr/> and max JPEG stream number is 2,<wbr/> then this tuple should be <code>(1,<wbr/> 3,<wbr/> 2)</code>.<wbr/></p>
9199<p>This lists the upper bound of the number of output streams supported by
9200the camera device.<wbr/> Using more streams simultaneously may require more hardware and
9201CPU resources that will consume more power.<wbr/> The image format for a output stream can
9202be any supported format provided by <a href="#static_android.scaler.availableFormats">android.<wbr/>scaler.<wbr/>available<wbr/>Formats</a>.<wbr/> The formats
9203defined in <a href="#static_android.scaler.availableFormats">android.<wbr/>scaler.<wbr/>available<wbr/>Formats</a> can be catergorized into the 3 stream types
9204as below:</p>
9205<ul>
9206<li>JPEG-compressed format: BLOB.<wbr/></li>
9207<li>Raw formats: RAW_<wbr/>SENSOR and RAW_<wbr/>OPAQUE.<wbr/></li>
9208<li>processed,<wbr/> uncompressed formats: YCb<wbr/>Cr_<wbr/>420_<wbr/>888,<wbr/> YCr<wbr/>Cb_<wbr/>420_<wbr/>SP,<wbr/> YV12.<wbr/></li>
9209</ul>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009210 </td>
9211 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009212
9213
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009214 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9215 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009216
9217
9218 <tr class="entry" id="static_android.request.maxNumReprocessStreams">
Zhijun He12744b22014-01-22 15:58:57 -08009219 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009220 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Reprocess<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009221 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009222 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009223 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009224 <span class="entry_type_container">x</span>
9225
9226 <span class="entry_type_array">
9227 1
9228 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009229 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009230
9231
9232 </td> <!-- entry_type -->
9233
9234 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009235 <p>How many reprocessing streams of any type
Zhijun He12744b22014-01-22 15:58:57 -08009236can be allocated at the same time.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009237 </td>
9238
9239 <td class="entry_units">
9240 </td>
9241
9242 <td class="entry_range">
Zhijun He12744b22014-01-22 15:58:57 -08009243 <p>&gt;= 0</p>
9244 </td>
9245
9246 <td class="entry_tags">
9247 <ul class="entry_tags">
9248 <li><a href="#tag_HAL2">HAL2</a></li>
9249 </ul>
9250 </td>
9251
9252 </tr>
9253 <tr class="entries_header">
9254 <th class="th_details" colspan="5">Details</th>
9255 </tr>
9256 <tr class="entry_cont">
9257 <td class="entry_details" colspan="5">
9258 <p><strong>Deprecated</strong>.<wbr/> Only used by HAL2.<wbr/>x.<wbr/></p>
9259<p>When set to 0,<wbr/> it means no reprocess stream is supported.<wbr/></p>
9260 </td>
9261 </tr>
9262
9263
9264 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9265 <!-- end of entry -->
9266
9267
9268 <tr class="entry" id="static_android.request.maxNumInputStreams">
9269 <td class="entry_name" rowspan="3">
9270 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams
9271 </td>
9272 <td class="entry_type">
9273 <span class="entry_type_name">int32</span>
9274
9275 <span class="entry_type_visibility"> [public]</span>
9276
9277
9278 </td> <!-- entry_type -->
9279
9280 <td class="entry_description">
9281 <p>The maximum numbers of any type of input streams
9282that can be configured and used simultaneously by a camera device.<wbr/></p>
9283 </td>
9284
9285 <td class="entry_units">
9286 </td>
9287
9288 <td class="entry_range">
9289 <p>&gt;= 0 for LIMITED mode device (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>).<wbr/>
9290&gt;= 1 for FULL mode device (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL</code>).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009291 </td>
9292
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009293 <td class="entry_tags">
9294 </td>
9295
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009296 </tr>
Zhijun He12744b22014-01-22 15:58:57 -08009297 <tr class="entries_header">
9298 <th class="th_details" colspan="5">Details</th>
9299 </tr>
9300 <tr class="entry_cont">
9301 <td class="entry_details" colspan="5">
9302 <p>When set to 0,<wbr/> it means no input stream is supported.<wbr/></p>
9303<p>The image format for a input stream can be any supported format provided
9304by android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Formats.<wbr/> When using an input stream,<wbr/> there must be
9305at least one output stream configured to to receive the reprocessed images.<wbr/></p>
9306<p>For example,<wbr/> for Zero Shutter Lag (ZSL) still capture use case,<wbr/> the input
9307stream image format will be RAW_<wbr/>OPAQUE,<wbr/> the associated output stream image format
9308should be JPEG.<wbr/></p>
9309 </td>
9310 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009311
9312
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009313 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9314 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009315
Igor Murashkina46e02f2014-01-09 17:43:38 -08009316
9317 <tr class="entry" id="static_android.request.pipelineMaxDepth">
9318 <td class="entry_name" rowspan="5">
9319 android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth
9320 </td>
9321 <td class="entry_type">
9322 <span class="entry_type_name">byte</span>
9323
9324 <span class="entry_type_visibility"> [public]</span>
9325
9326
9327 </td> <!-- entry_type -->
9328
9329 <td class="entry_description">
9330 <p>Specifies the number of maximum pipeline stages a frame
9331has to go through from when it's exposed to when it's available
9332to the framework.<wbr/></p>
9333 </td>
9334
9335 <td class="entry_units">
9336 </td>
9337
9338 <td class="entry_range">
9339 </td>
9340
9341 <td class="entry_tags">
9342 </td>
9343
9344 </tr>
9345 <tr class="entries_header">
9346 <th class="th_details" colspan="5">Details</th>
9347 </tr>
9348 <tr class="entry_cont">
9349 <td class="entry_details" colspan="5">
9350 <p>A typical minimum value for this is 2 (one stage to expose,<wbr/>
9351one stage to readout) from the sensor.<wbr/> The ISP then usually adds
9352its own stages to do custom HW processing.<wbr/> Further stages may be
9353added by SW processing.<wbr/></p>
9354<p>Depending on what settings are used (e.<wbr/>g.<wbr/> YUV,<wbr/> JPEG) and what
9355processing is enabled (e.<wbr/>g.<wbr/> face detection),<wbr/> the actual pipeline
9356depth (specified by <a href="#dynamic_android.request.pipelineDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Depth</a>) may be less than
9357the max pipeline depth.<wbr/></p>
9358<p>A pipeline depth of X stages is equivalent to a pipeline latency of
9359X frame intervals.<wbr/></p>
9360<p>This value will be 8 or less.<wbr/></p>
9361 </td>
9362 </tr>
9363
9364 <tr class="entries_header">
9365 <th class="th_details" colspan="5">HAL Implementation Details</th>
9366 </tr>
9367 <tr class="entry_cont">
9368 <td class="entry_details" colspan="5">
9369 <p>This value should be 4 or less.<wbr/></p>
9370 </td>
9371 </tr>
9372
9373 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9374 <!-- end of entry -->
9375
Igor Murashkin2e291102014-01-10 14:18:30 -08009376
9377 <tr class="entry" id="static_android.request.partialResultCount">
9378 <td class="entry_name" rowspan="3">
9379 android.<wbr/>request.<wbr/>partial<wbr/>Result<wbr/>Count
9380 </td>
9381 <td class="entry_type">
9382 <span class="entry_type_name">int32</span>
9383
9384 <span class="entry_type_visibility"> [public]</span>
9385
9386
9387 </td> <!-- entry_type -->
9388
9389 <td class="entry_description">
9390 <p>Optional.<wbr/> Defaults to 1.<wbr/> Defines how many sub-components
9391a result will be composed of.<wbr/></p>
9392 </td>
9393
9394 <td class="entry_units">
9395 </td>
9396
9397 <td class="entry_range">
9398 <p>&gt;= 1</p>
9399 </td>
9400
9401 <td class="entry_tags">
9402 </td>
9403
9404 </tr>
9405 <tr class="entries_header">
9406 <th class="th_details" colspan="5">Details</th>
9407 </tr>
9408 <tr class="entry_cont">
9409 <td class="entry_details" colspan="5">
9410 <p>In order to combat the pipeline latency,<wbr/> partial results
9411may be delivered to the application layer from the camera device as
9412soon as they are available.<wbr/></p>
9413<p>A value of 1 means that partial results are not supported.<wbr/></p>
9414<p>A typical use case for this might be: after requesting an AF lock the
9415new AF state might be available 50% of the way through the pipeline.<wbr/>
9416The camera device could then immediately dispatch this state via a
9417partial result to the framework/<wbr/>application layer,<wbr/> and the rest of
9418the metadata via later partial results.<wbr/></p>
9419 </td>
9420 </tr>
9421
9422
9423 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9424 <!-- end of entry -->
9425
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009426
9427
9428 <!-- end of kind -->
9429 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009430 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009431
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009432 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009433 <tr>
9434 <th class="th_name">Property Name</th>
9435 <th class="th_type">Type</th>
9436 <th class="th_description">Description</th>
9437 <th class="th_units">Units</th>
9438 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009439 <th class="th_tags">Tags</th>
9440 </tr>
9441 </thead>
9442
9443 <tbody>
9444
9445
9446
9447
9448
9449
9450
9451
9452
9453
9454 <tr class="entry" id="dynamic_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009455 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009456 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009457 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009458 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009459 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009460
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009461 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009462
9463
9464 </td> <!-- entry_type -->
9465
9466 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009467 <p>A frame counter set by the framework.<wbr/> This value monotonically
9468increases with every new result (that is,<wbr/> each new result has a unique
9469frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009470 </td>
9471
9472 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009473 count of frames
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009474 </td>
9475
9476 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009477 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009478 </td>
9479
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009480 <td class="entry_tags">
9481 </td>
9482
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009483 </tr>
9484 <tr class="entries_header">
9485 <th class="th_details" colspan="5">Details</th>
9486 </tr>
9487 <tr class="entry_cont">
9488 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009489 <p>Reset on release()</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009490 </td>
9491 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009492
9493
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009494 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9495 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009496
9497
9498 <tr class="entry" id="dynamic_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009499 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009500 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009501 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009502 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009503 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009504
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009505 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009506
9507
9508 </td> <!-- entry_type -->
9509
9510 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009511 <p>An application-specified ID for the current
9512request.<wbr/> Must be maintained unchanged in output
9513frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009514 </td>
9515
9516 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009517 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009518 </td>
9519
9520 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009521 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009522 </td>
9523
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009524 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009525 <ul class="entry_tags">
9526 <li><a href="#tag_V1">V1</a></li>
9527 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009528 </td>
9529
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009530 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009531
9532
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009533 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9534 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009535
9536
9537 <tr class="entry" id="dynamic_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009538 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009539 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009540 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009541 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009542 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009543
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009544 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009545
9546 <ul class="entry_type_enum">
9547 <li>
9548 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009549 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
9550for application-bound buffer data.<wbr/> If no
9551application-bound streams exist,<wbr/> no frame should be
9552placed in the output frame queue.<wbr/> If such streams
9553exist,<wbr/> a frame should be placed on the output queue
9554with null metadata but with the necessary output buffer
9555information.<wbr/> Timestamp information should still be
9556included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009557 </li>
9558 <li>
9559 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009560 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
9561only be produced if they are separately
9562enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009563 </li>
9564 </ul>
9565
9566 </td> <!-- entry_type -->
9567
9568 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009569 <p>How much metadata to produce on
9570output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009571 </td>
9572
9573 <td class="entry_units">
9574 </td>
9575
9576 <td class="entry_range">
9577 </td>
9578
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009579 <td class="entry_tags">
9580 </td>
9581
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009582 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009583
9584
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009585 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9586 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009587
9588
9589 <tr class="entry" id="dynamic_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009590 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009591 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009592 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009593 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009594 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009595 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009596
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009597 <span class="entry_type_array">
9598 n
9599 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009600 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009601
9602
9603 </td> <!-- entry_type -->
9604
9605 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009606 <p>Lists which camera output streams image data
9607from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009608 </td>
9609
9610 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009611 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009612 </td>
9613
9614 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08009615 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> List must only include streams that have been
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009616created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009617 </td>
9618
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009619 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009620 <ul class="entry_tags">
9621 <li><a href="#tag_HAL2">HAL2</a></li>
9622 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009623 </td>
9624
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009625 </tr>
9626 <tr class="entries_header">
9627 <th class="th_details" colspan="5">Details</th>
9628 </tr>
9629 <tr class="entry_cont">
9630 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009631 <p>If no output streams are listed,<wbr/> then the image
9632data should simply be discarded.<wbr/> The image data must
9633still be captured for metadata and statistics production,<wbr/>
9634and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009635 </td>
9636 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009637
9638
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009639 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9640 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009641
Igor Murashkina46e02f2014-01-09 17:43:38 -08009642
9643 <tr class="entry" id="dynamic_android.request.pipelineDepth">
9644 <td class="entry_name" rowspan="5">
9645 android.<wbr/>request.<wbr/>pipeline<wbr/>Depth
9646 </td>
9647 <td class="entry_type">
9648 <span class="entry_type_name">byte</span>
9649
9650 <span class="entry_type_visibility"> [public]</span>
9651
9652
9653 </td> <!-- entry_type -->
9654
9655 <td class="entry_description">
9656 <p>Specifies the number of pipeline stages the frame went
9657through from when it was exposed to when the final completed result
9658was available to the framework.<wbr/></p>
9659 </td>
9660
9661 <td class="entry_units">
9662 </td>
9663
9664 <td class="entry_range">
9665 <p>&lt;= <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a></p>
9666 </td>
9667
9668 <td class="entry_tags">
9669 </td>
9670
9671 </tr>
9672 <tr class="entries_header">
9673 <th class="th_details" colspan="5">Details</th>
9674 </tr>
9675 <tr class="entry_cont">
9676 <td class="entry_details" colspan="5">
9677 <p>Depending on what settings are used in the request,<wbr/> and
9678what streams are configured,<wbr/> the data may undergo less processing,<wbr/>
9679and some pipeline stages skipped.<wbr/></p>
9680<p>See <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> for more details.<wbr/></p>
9681 </td>
9682 </tr>
9683
9684 <tr class="entries_header">
9685 <th class="th_details" colspan="5">HAL Implementation Details</th>
9686 </tr>
9687 <tr class="entry_cont">
9688 <td class="entry_details" colspan="5">
9689 <p>This value must always represent the accurate count of how many
9690pipeline stages were actually used.<wbr/></p>
9691 </td>
9692 </tr>
9693
9694 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9695 <!-- end of entry -->
9696
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009697
9698
9699 <!-- end of kind -->
9700 </tbody>
9701
9702 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009703 <tr><td colspan="6" id="section_scaler" class="section">scaler</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009704
9705
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009706 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009707
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009708 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009709 <tr>
9710 <th class="th_name">Property Name</th>
9711 <th class="th_type">Type</th>
9712 <th class="th_description">Description</th>
9713 <th class="th_units">Units</th>
9714 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009715 <th class="th_tags">Tags</th>
9716 </tr>
9717 </thead>
9718
9719 <tbody>
9720
9721
9722
9723
9724
9725
9726
9727
9728
9729
9730 <tr class="entry" id="controls_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009731 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009732 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009733 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009734 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009735 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009736 <span class="entry_type_container">x</span>
9737
9738 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07009739 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009740 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009741 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009742
9743
9744 </td> <!-- entry_type -->
9745
9746 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009747 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
9748<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
9749(width,<wbr/> height).<wbr/> The region of the sensor that is used for
9750output.<wbr/> Each stream must use this rectangle to produce its
9751output,<wbr/> cropping to a smaller region if necessary to
9752maintain the stream's aspect ratio.<wbr/></p>
9753<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009754 </td>
9755
9756 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009757 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
9758 in pixels; (0,<wbr/>0) is top-left corner of
9759 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009760 </td>
9761
9762 <td class="entry_range">
9763 </td>
9764
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009765 <td class="entry_tags">
9766 <ul class="entry_tags">
9767 <li><a href="#tag_BC">BC</a></li>
9768 </ul>
9769 </td>
9770
9771 </tr>
9772 <tr class="entries_header">
9773 <th class="th_details" colspan="5">Details</th>
9774 </tr>
9775 <tr class="entry_cont">
9776 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009777 <p>Any additional per-stream cropping must be done to
9778maximize the final pixel area of the stream.<wbr/></p>
9779<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
9780ratio,<wbr/> then 4:3 streams should use the exact crop
9781region.<wbr/> 16:9 streams should further crop vertically
9782(letterbox).<wbr/></p>
9783<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
9784outputs should crop horizontally (pillarbox),<wbr/> and 16:9
9785streams should match exactly.<wbr/> These additional crops must
9786be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009787<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -08009788times,<wbr/> no matter what the relative aspect ratios of the
9789crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009790corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -08009791larger than active pixel array.<wbr/> Width and height may be
9792rounded to nearest larger supportable width,<wbr/> especially
9793for raw output,<wbr/> where only a few fixed scales may be
9794possible.<wbr/> The width and height of the crop region cannot
9795be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
9796android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
9797activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
9798respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009799 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009800 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009801
9802
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009803 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9804 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009805
9806
9807
9808 <!-- end of kind -->
9809 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009810 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009811
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009812 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009813 <tr>
9814 <th class="th_name">Property Name</th>
9815 <th class="th_type">Type</th>
9816 <th class="th_description">Description</th>
9817 <th class="th_units">Units</th>
9818 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009819 <th class="th_tags">Tags</th>
9820 </tr>
9821 </thead>
9822
9823 <tbody>
9824
9825
9826
9827
9828
9829
9830
9831
9832
9833
9834 <tr class="entry" id="static_android.scaler.availableFormats">
Zhijun Heb8317e22014-01-16 09:47:07 -08009835 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009836 android.<wbr/>scaler.<wbr/>available<wbr/>Formats
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009837 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009838 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009839 <span class="entry_type_name entry_type_name_enum">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009840 <span class="entry_type_container">x</span>
9841
9842 <span class="entry_type_array">
9843 n
9844 </span>
Eino-Ville Talvalad4e240a2013-08-08 12:56:37 -07009845 <span class="entry_type_visibility"> [public as imageFormat]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009846
9847 <ul class="entry_type_enum">
9848 <li>
9849 <span class="entry_type_enum_name">RAW_SENSOR</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009850 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009851 <span class="entry_type_enum_value">0x20</span>
9852 </li>
9853 <li>
9854 <span class="entry_type_enum_name">YV12</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009855 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009856 <span class="entry_type_enum_value">0x32315659</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009857 <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009858 </li>
9859 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009860 <span class="entry_type_enum_name">YCrCb_420_SP</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009861 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009862 <span class="entry_type_enum_value">0x11</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009863 <span class="entry_type_enum_notes"><p>NV21</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009864 </li>
9865 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009866 <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span>
9867 <span class="entry_type_enum_value">0x22</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009868 <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009869 </li>
9870 <li>
9871 <span class="entry_type_enum_name">YCbCr_420_888</span>
9872 <span class="entry_type_enum_value">0x23</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009873 <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009874 </li>
9875 <li>
9876 <span class="entry_type_enum_name">BLOB</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009877 <span class="entry_type_enum_value">0x21</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009878 <span class="entry_type_enum_notes"><p>JPEG format</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009879 </li>
9880 </ul>
9881
9882 </td> <!-- entry_type -->
9883
9884 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009885 <p>The list of image formats that are supported by this
9886camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009887 </td>
9888
9889 <td class="entry_units">
9890 </td>
9891
9892 <td class="entry_range">
9893 </td>
9894
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009895 <td class="entry_tags">
9896 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009897 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009898 </ul>
9899 </td>
9900
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009901 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009902 <tr class="entries_header">
9903 <th class="th_details" colspan="5">Details</th>
9904 </tr>
9905 <tr class="entry_cont">
9906 <td class="entry_details" colspan="5">
9907 <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p>
9908<p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p>
9909 </td>
9910 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009911
Zhijun Heb8317e22014-01-16 09:47:07 -08009912 <tr class="entries_header">
9913 <th class="th_details" colspan="5">HAL Implementation Details</th>
9914 </tr>
9915 <tr class="entry_cont">
9916 <td class="entry_details" colspan="5">
9917 <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
9918system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
9919<p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform
9920gralloc module will select a format based on the usage flags provided
9921by the camera HAL device and the other endpoint of the stream.<wbr/> It is
9922usually used by preview and recording streams,<wbr/> where the application doesn't
9923need access the image data.<wbr/></p>
9924<p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream
9925needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p>
9926<p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p>
9927 </td>
9928 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009929
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009930 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9931 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009932
9933
9934 <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009935 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009936 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009937 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009938 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009939 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009940 <span class="entry_type_container">x</span>
9941
9942 <span class="entry_type_array">
9943 n
9944 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009945 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009946
9947
9948 </td> <!-- entry_type -->
9949
9950 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009951 <p>The minimum frame duration that is supported
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009952for 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 -08009953 </td>
9954
9955 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009956 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009957 </td>
9958
9959 <td class="entry_range">
9960 </td>
9961
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009962 <td class="entry_tags">
9963 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009964 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009965 </ul>
9966 </td>
9967
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009968 </tr>
9969 <tr class="entries_header">
9970 <th class="th_details" colspan="5">Details</th>
9971 </tr>
9972 <tr class="entry_cont">
9973 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009974 <p>This corresponds to the minimum steady-state frame duration when only
9975that JPEG stream is active and captured in a burst,<wbr/> with all
9976processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST.<wbr/></p>
9977<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009978frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -08009979durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009980 </td>
9981 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009982
9983
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009984 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9985 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009986
9987
9988 <tr class="entry" id="static_android.scaler.availableJpegSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -08009989 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009990 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009991 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009992 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009993 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009994 <span class="entry_type_container">x</span>
9995
9996 <span class="entry_type_array">
9997 n x 2
9998 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009999 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010000
10001
10002 </td> <!-- entry_type -->
10003
10004 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -080010005 <p>The JPEG resolutions that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010006 </td>
10007
10008 <td class="entry_units">
10009 </td>
10010
10011 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010012 </td>
10013
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010014 <td class="entry_tags">
10015 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010016 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010017 </ul>
10018 </td>
10019
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010020 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -080010021 <tr class="entries_header">
10022 <th class="th_details" colspan="5">Details</th>
10023 </tr>
10024 <tr class="entry_cont">
10025 <td class="entry_details" colspan="5">
10026 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support
10027sensor 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>
10028 </td>
10029 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010030
Zhijun Heb8317e22014-01-16 09:47:07 -080010031 <tr class="entries_header">
10032 <th class="th_details" colspan="5">HAL Implementation Details</th>
10033 </tr>
10034 <tr class="entry_cont">
10035 <td class="entry_details" colspan="5">
10036 <p>The HAL must include sensor maximum resolution
10037(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/>
10038and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p>
10039 </td>
10040 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010041
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010042 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10043 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010044
10045
10046 <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010047 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010048 android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010049 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010050 <td class="entry_type">
Igor Murashkinf11a4df2013-05-07 10:00:46 -070010051 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010052
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010053 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010054
10055
10056 </td> <!-- entry_type -->
10057
10058 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010059 <p>The maximum ratio between active area width
10060and crop region width,<wbr/> or between active area height and
10061crop region height,<wbr/> if the crop region height is larger
10062than width</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010063 </td>
10064
10065 <td class="entry_units">
10066 </td>
10067
10068 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080010069 <p>&gt;=1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010070 </td>
10071
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010072 <td class="entry_tags">
Igor Murashkinf11a4df2013-05-07 10:00:46 -070010073 <ul class="entry_tags">
10074 <li><a href="#tag_BC">BC</a></li>
10075 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010076 </td>
10077
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010078 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010079
10080
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010081 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10082 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010083
10084
10085 <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010086 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010087 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010088 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010089 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010090 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010091 <span class="entry_type_container">x</span>
10092
10093 <span class="entry_type_array">
10094 n
10095 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010096 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010097
10098
10099 </td> <!-- entry_type -->
10100
10101 <td class="entry_description">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010102 <p>For each available processed output size (defined in
10103<a href="#static_android.scaler.availableProcessedSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes</a>),<wbr/> this property lists the
10104minimum supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010105 </td>
10106
10107 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010108 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010109 </td>
10110
10111 <td class="entry_range">
10112 </td>
10113
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010114 <td class="entry_tags">
10115 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010116 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010117 </ul>
10118 </td>
10119
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010120 </tr>
10121 <tr class="entries_header">
10122 <th class="th_details" colspan="5">Details</th>
10123 </tr>
10124 <tr class="entry_cont">
10125 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010126 <p>This should correspond to the frame duration when only that processed
10127stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
10128set to FAST.<wbr/></p>
10129<p>When multiple streams are configured,<wbr/> the minimum frame duration will
10130be &gt;= max(individual stream min durations).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010131 </td>
10132 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010133
10134
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010135 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10136 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010137
10138
10139 <tr class="entry" id="static_android.scaler.availableProcessedSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -080010140 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010141 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010142 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010143 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010144 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010145 <span class="entry_type_container">x</span>
10146
10147 <span class="entry_type_array">
10148 n x 2
10149 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010150 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010151
10152
10153 </td> <!-- entry_type -->
10154
10155 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010156 <p>The resolutions available for use with
10157processed output streams,<wbr/> such as YV12,<wbr/> NV12,<wbr/> and
10158platform opaque YUV/<wbr/>RGB streams to the GPU or video
Zhijun Heb8317e22014-01-16 09:47:07 -080010159encoders.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010160 </td>
10161
10162 <td class="entry_units">
10163 </td>
10164
10165 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010166 </td>
10167
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010168 <td class="entry_tags">
10169 <ul class="entry_tags">
10170 <li><a href="#tag_BC">BC</a></li>
10171 </ul>
10172 </td>
10173
10174 </tr>
10175 <tr class="entries_header">
10176 <th class="th_details" colspan="5">Details</th>
10177 </tr>
10178 <tr class="entry_cont">
10179 <td class="entry_details" colspan="5">
Zhijun Heb8317e22014-01-16 09:47:07 -080010180 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p>
10181<p>For a given use case,<wbr/> the actual maximum supported resolution
10182may be lower than what is listed here,<wbr/> depending on the destination
10183Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
10184the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
10185smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
10186can provide.<wbr/></p>
10187<p>Please reference the documentation for the image data destination to
10188check if it limits the maximum size for image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010189 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010190 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010191
Zhijun Heb8317e22014-01-16 09:47:07 -080010192 <tr class="entries_header">
10193 <th class="th_details" colspan="5">HAL Implementation Details</th>
10194 </tr>
10195 <tr class="entry_cont">
10196 <td class="entry_details" colspan="5">
10197 <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/>
10198the HAL must include all JPEG sizes listed in android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
10199and each below resolution if it is smaller than or equal to the sensor
10200maximum resolution (if they are not listed in JPEG sizes already):</p>
10201<ul>
10202<li>240p (320 x 240)</li>
10203<li>480p (640 x 480)</li>
10204<li>720p (1280 x 720)</li>
10205<li>1080p (1920 x 1080)</li>
10206</ul>
10207<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/>
10208the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p>
10209 </td>
10210 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010211
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010212 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10213 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010214
10215
10216 <tr class="entry" id="static_android.scaler.availableRawMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010217 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010218 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010219 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010220 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010221 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010222 <span class="entry_type_container">x</span>
10223
10224 <span class="entry_type_array">
10225 n
10226 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010227 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010228
10229
10230 </td> <!-- entry_type -->
10231
10232 <td class="entry_description">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010233 <p>For each available raw output size (defined in
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010234<a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a>),<wbr/> this property lists the minimum
10235supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010236 </td>
10237
10238 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010239 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010240 </td>
10241
10242 <td class="entry_range">
10243 </td>
10244
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010245 <td class="entry_tags">
10246 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010247 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010248 </ul>
10249 </td>
10250
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010251 </tr>
10252 <tr class="entries_header">
10253 <th class="th_details" colspan="5">Details</th>
10254 </tr>
10255 <tr class="entry_cont">
10256 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010257 <p>Should correspond to the frame duration when only the raw stream is
10258active.<wbr/></p>
10259<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010260frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -080010261durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010262 </td>
10263 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010264
10265
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010266 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10267 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010268
10269
10270 <tr class="entry" id="static_android.scaler.availableRawSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010271 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010272 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010273 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010274 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010275 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010276 <span class="entry_type_container">x</span>
10277
10278 <span class="entry_type_array">
10279 n x 2
10280 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010281 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010282
10283
10284 </td> <!-- entry_type -->
10285
10286 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010287 <p>The resolutions available for use with raw
10288sensor output streams,<wbr/> listed as width,<wbr/>
10289height</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010290 </td>
10291
10292 <td class="entry_units">
10293 </td>
10294
10295 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010296 <p>Must include: - sensor maximum resolution</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010297 </td>
10298
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010299 <td class="entry_tags">
10300 </td>
10301
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010302 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010303
10304
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010305 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10306 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010307
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010308
10309
10310 <!-- end of kind -->
10311 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010312 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010313
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010314 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010315 <tr>
10316 <th class="th_name">Property Name</th>
10317 <th class="th_type">Type</th>
10318 <th class="th_description">Description</th>
10319 <th class="th_units">Units</th>
10320 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010321 <th class="th_tags">Tags</th>
10322 </tr>
10323 </thead>
10324
10325 <tbody>
10326
10327
10328
10329
10330
10331
10332
10333
10334
10335
10336 <tr class="entry" id="dynamic_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010337 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010338 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010339 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010340 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010341 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010342 <span class="entry_type_container">x</span>
10343
10344 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -070010345 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010346 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010347 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010348
10349
10350 </td> <!-- entry_type -->
10351
10352 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010353 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
10354<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
10355(width,<wbr/> height).<wbr/> The region of the sensor that is used for
10356output.<wbr/> Each stream must use this rectangle to produce its
10357output,<wbr/> cropping to a smaller region if necessary to
10358maintain the stream's aspect ratio.<wbr/></p>
10359<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010360 </td>
10361
10362 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010363 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
10364 in pixels; (0,<wbr/>0) is top-left corner of
10365 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010366 </td>
10367
10368 <td class="entry_range">
10369 </td>
10370
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010371 <td class="entry_tags">
10372 <ul class="entry_tags">
10373 <li><a href="#tag_BC">BC</a></li>
10374 </ul>
10375 </td>
10376
10377 </tr>
10378 <tr class="entries_header">
10379 <th class="th_details" colspan="5">Details</th>
10380 </tr>
10381 <tr class="entry_cont">
10382 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010383 <p>Any additional per-stream cropping must be done to
10384maximize the final pixel area of the stream.<wbr/></p>
10385<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
10386ratio,<wbr/> then 4:3 streams should use the exact crop
10387region.<wbr/> 16:9 streams should further crop vertically
10388(letterbox).<wbr/></p>
10389<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
10390outputs should crop horizontally (pillarbox),<wbr/> and 16:9
10391streams should match exactly.<wbr/> These additional crops must
10392be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010393<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -080010394times,<wbr/> no matter what the relative aspect ratios of the
10395crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010396corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -080010397larger than active pixel array.<wbr/> Width and height may be
10398rounded to nearest larger supportable width,<wbr/> especially
10399for raw output,<wbr/> where only a few fixed scales may be
10400possible.<wbr/> The width and height of the crop region cannot
10401be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
10402android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
10403activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
10404respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010405 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010406 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010407
10408
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010409 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10410 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010411
10412
10413
10414 <!-- end of kind -->
10415 </tbody>
10416
10417 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010418 <tr><td colspan="6" id="section_sensor" class="section">sensor</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010419
10420
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010421 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010422
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010423 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010424 <tr>
10425 <th class="th_name">Property Name</th>
10426 <th class="th_type">Type</th>
10427 <th class="th_description">Description</th>
10428 <th class="th_units">Units</th>
10429 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010430 <th class="th_tags">Tags</th>
10431 </tr>
10432 </thead>
10433
10434 <tbody>
10435
10436
10437
10438
10439
10440
10441
10442
10443
10444
10445 <tr class="entry" id="controls_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010446 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010447 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010448 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010449 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010450 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010451
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010452 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010453
10454
10455 </td> <!-- entry_type -->
10456
10457 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010458 <p>Duration each pixel is exposed to
10459light.<wbr/></p>
10460<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
10461duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010462 </td>
10463
10464 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010465 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010466 </td>
10467
10468 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010469 <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 -080010470 </td>
10471
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010472 <td class="entry_tags">
10473 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010474 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010475 </ul>
10476 </td>
10477
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010478 </tr>
10479 <tr class="entries_header">
10480 <th class="th_details" colspan="5">Details</th>
10481 </tr>
10482 <tr class="entry_cont">
10483 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010484 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010485 </td>
10486 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010487
10488
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010489 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10490 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010491
10492
10493 <tr class="entry" id="controls_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010494 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010495 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010496 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010497 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010498 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010499
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010500 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010501
10502
10503 </td> <!-- entry_type -->
10504
10505 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010506 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010507start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010508 </td>
10509
10510 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010511 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010512 </td>
10513
10514 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010515 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
10516android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
10517is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010518 </td>
10519
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010520 <td class="entry_tags">
10521 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010522 <li><a href="#tag_V1">V1</a></li>
10523 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010524 </ul>
10525 </td>
10526
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010527 </tr>
10528 <tr class="entries_header">
10529 <th class="th_details" colspan="5">Details</th>
10530 </tr>
10531 <tr class="entry_cont">
10532 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010533 <p>The maximum frame rate that can be supported by a camera subsystem is
10534a function of many factors:</p>
10535<ul>
10536<li>Requested resolutions of output image streams</li>
10537<li>Availability of binning /<wbr/> skipping modes on the imager</li>
10538<li>The bandwidth of the imager interface</li>
10539<li>The bandwidth of the various ISP processing blocks</li>
10540</ul>
10541<p>Since these factors can vary greatly between different ISPs and
10542sensors,<wbr/> the camera abstraction tries to represent the bandwidth
10543restrictions with as simple a model as possible.<wbr/></p>
10544<p>The model presented has the following characteristics:</p>
10545<ul>
10546<li>The image sensor is always configured to output the smallest
10547resolution possible given the application's requested output stream
10548sizes.<wbr/> The smallest resolution is defined as being at least as large
10549as the largest requested output stream size; the camera pipeline must
10550never digitally upsample sensor data when the crop region covers the
10551whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
10552resolutions are configured,<wbr/> the sensor can provide a higher frame
10553rate.<wbr/></li>
10554<li>Since any request may use any or all the currently configured
10555output streams,<wbr/> the sensor and ISP must be configured to support
10556scaling a single capture to all the streams at the same time.<wbr/> This
10557means the camera pipeline must be ready to produce the largest
10558requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
10559frame rate of a given configured stream set is governed only by the
10560largest requested stream resolution.<wbr/></li>
10561<li>Using more than one output stream in a request does not affect the
10562frame duration.<wbr/></li>
10563<li>JPEG streams act like processed YUV streams in requests for which
10564they are not included; in requests in which they are directly
10565referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
10566JPEG stream requires the underlying YUV data to always be ready for
10567use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
10568frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
10569<li>The JPEG processor can run concurrently to the rest of the camera
10570pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
10571</ul>
10572<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
10573is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
10574These are used to determine the maximum frame rate /<wbr/> minimum frame
10575duration that is possible for a given stream configuration.<wbr/></p>
10576<p>Specifically,<wbr/> the application can use the following rules to
10577determine the minimum frame duration it can request from the HAL
10578device:</p>
10579<ol>
10580<li>Given the application's currently configured set of output
10581streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
10582<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
10583<code>SP</code>.<wbr/></li>
10584<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
10585count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
10586<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
10587<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
10588no exact match for <code>RP == RJ</code> (in particular there isn't an available
10589processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
10590to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
10591there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
10592the processed resolution closest to <code>RJ</code>.<wbr/></li>
10593<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
10594no exact match for <code>RR == RP</code> (in particular there isn't an available
10595raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
10596or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
10597there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
10598the raw resolution closest to <code>RP</code>.<wbr/></li>
10599<li>Look up the matching minimum frame durations in the property lists
10600<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
10601<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
10602<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
10603minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
10604<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
10605supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
10606<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
10607supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
10608<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
10609the application,<wbr/> then the HAL will have to delay JPEG-using requests
10610whenever the JPEG encoder is still busy processing an older capture.<wbr/>
10611This will happen whenever a JPEG-using request starts capture less
10612than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
10613supported frame duration will vary between the values calculated in
10614#6 and #7.<wbr/></li>
10615</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010616 </td>
10617 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010618
10619
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010620 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10621 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010622
10623
10624 <tr class="entry" id="controls_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010625 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010626 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010627 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010628 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010629 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010630
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010631 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010632
10633
10634 </td> <!-- entry_type -->
10635
10636 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010637 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010638implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080010639below 'maximum analog sensitivity'.<wbr/></p>
10640<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
10641gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010642 </td>
10643
10644 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010645 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010646 </td>
10647
10648 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010649 <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 -080010650 </td>
10651
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010652 <td class="entry_tags">
10653 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010654 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010655 </ul>
10656 </td>
10657
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010658 </tr>
10659 <tr class="entries_header">
10660 <th class="th_details" colspan="5">Details</th>
10661 </tr>
10662 <tr class="entry_cont">
10663 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010664 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010665 </td>
10666 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010667
10668
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010669 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10670 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010671
Igor Murashkina46e02f2014-01-09 17:43:38 -080010672
10673 <tr class="entry" id="controls_android.sensor.testPatternData">
10674 <td class="entry_name" rowspan="5">
10675 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
10676 </td>
10677 <td class="entry_type">
10678 <span class="entry_type_name">int32</span>
10679 <span class="entry_type_container">x</span>
10680
10681 <span class="entry_type_array">
10682 4
10683 </span>
10684 <span class="entry_type_visibility"> [public]</span>
10685
10686
10687 </td> <!-- entry_type -->
10688
10689 <td class="entry_description">
10690 <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
10691when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
10692 </td>
10693
10694 <td class="entry_units">
10695 </td>
10696
10697 <td class="entry_range">
10698 <p>Optional.<wbr/>
10699Must be supported if <a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a> contains
10700SOLID_<wbr/>COLOR.<wbr/></p>
10701 </td>
10702
10703 <td class="entry_tags">
10704 </td>
10705
10706 </tr>
10707 <tr class="entries_header">
10708 <th class="th_details" colspan="5">Details</th>
10709 </tr>
10710 <tr class="entry_cont">
10711 <td class="entry_details" colspan="5">
10712 <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
10713The camera device then uses the most significant X bits
10714that correspond to how many bits are in its Bayer raw sensor
10715output.<wbr/></p>
10716<p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
1071710 most significant bits from each color channel.<wbr/></p>
10718 </td>
10719 </tr>
10720
10721 <tr class="entries_header">
10722 <th class="th_details" colspan="5">HAL Implementation Details</th>
10723 </tr>
10724 <tr class="entry_cont">
10725 <td class="entry_details" colspan="5">
10726
10727 </td>
10728 </tr>
10729
10730 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10731 <!-- end of entry -->
10732
10733
10734 <tr class="entry" id="controls_android.sensor.testPatternMode">
10735 <td class="entry_name" rowspan="5">
10736 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
10737 </td>
10738 <td class="entry_type">
10739 <span class="entry_type_name entry_type_name_enum">int32</span>
10740
10741 <span class="entry_type_visibility"> [public]</span>
10742
10743 <ul class="entry_type_enum">
10744 <li>
10745 <span class="entry_type_enum_name">OFF</span>
10746 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
10747device returns captures from the image sensor.<wbr/></p></span>
10748 </li>
10749 <li>
10750 <span class="entry_type_enum_name">SOLID_COLOR</span>
10751 <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
10752respective color channel provided in
10753<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
10754<p>For example:</p>
10755<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10756</code></pre>
10757<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
10758<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10759</code></pre>
10760<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
10761are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
10762 </li>
10763 <li>
10764 <span class="entry_type_enum_name">COLOR_BARS</span>
10765 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
10766<p>The vertical bars (left-to-right) are as follows:</p>
10767<ul>
10768<li>100% white</li>
10769<li>yellow</li>
10770<li>cyan</li>
10771<li>green</li>
10772<li>magenta</li>
10773<li>red</li>
10774<li>blue</li>
10775<li>black</li>
10776</ul>
10777<p>In general the image would look like the following:</p>
10778<pre><code>W Y C G M R B K
10779W Y C G M R B K
10780W Y C G M R B K
10781W Y C G M R B K
10782W Y C G M R B K
10783.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10784.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10785.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10786
10787(B = Blue,<wbr/> K = Black)
10788</code></pre>
10789<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
10790When this is not possible,<wbr/> the bar size should be rounded
10791down to the nearest integer and the pattern can repeat
10792on the right side.<wbr/></p>
10793<p>Each bar's height must always take up the full sensor
10794pixel array height.<wbr/></p>
10795<p>Each pixel in this test pattern must be set to either
107960% intensity or 100% intensity.<wbr/></p></span>
10797 </li>
10798 <li>
10799 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
10800 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
10801each bar should start at its specified color at the top,<wbr/>
10802and fade to gray at the bottom.<wbr/></p>
10803<p>Furthermore each bar is further subdivided into a left and
10804right half.<wbr/> The left half should have a smooth gradient,<wbr/>
10805and the right half should have a quantized gradient.<wbr/></p>
10806<p>In particular,<wbr/> the right half's should consist of blocks of the
10807same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
10808<p>The least significant bits in the quantized gradient should
10809be copied from the most significant bits of the smooth gradient.<wbr/></p>
10810<p>The height of each bar should always be a multiple of 128.<wbr/>
10811When this is not the case,<wbr/> the pattern should repeat at the bottom
10812of the image.<wbr/></p></span>
10813 </li>
10814 <li>
10815 <span class="entry_type_enum_name">PN9</span>
10816 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
10817generated from a PN9 512-bit sequence (typically implemented
10818in hardware with a linear feedback shift register).<wbr/></p>
10819<p>The generator should be reset at the beginning of each frame,<wbr/>
10820and thus each subsequent raw frame with this test pattern should
10821be exactly the same as the last.<wbr/></p></span>
10822 </li>
10823 <li>
10824 <span class="entry_type_enum_name">CUSTOM1</span>
10825 <span class="entry_type_enum_value">256</span>
10826 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
10827available only on this camera device are at least this numeric
10828value.<wbr/></p>
10829<p>All of the custom test patterns will be static
10830(that is the raw image must not vary from frame to frame).<wbr/></p></span>
10831 </li>
10832 </ul>
10833
10834 </td> <!-- entry_type -->
10835
10836 <td class="entry_description">
10837 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
10838doing a real exposure from the camera.<wbr/></p>
10839 </td>
10840
10841 <td class="entry_units">
10842 </td>
10843
10844 <td class="entry_range">
10845 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
10846<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
10847 </td>
10848
10849 <td class="entry_tags">
10850 </td>
10851
10852 </tr>
10853 <tr class="entries_header">
10854 <th class="th_details" colspan="5">Details</th>
10855 </tr>
10856 <tr class="entry_cont">
10857 <td class="entry_details" colspan="5">
10858 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
10859by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
10860work as normal.<wbr/></p>
10861<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
10862occur (and that the test pattern remain unmodified,<wbr/> since the flash
10863would not actually affect it).<wbr/></p>
10864 </td>
10865 </tr>
10866
10867 <tr class="entries_header">
10868 <th class="th_details" colspan="5">HAL Implementation Details</th>
10869 </tr>
10870 <tr class="entry_cont">
10871 <td class="entry_details" colspan="5">
10872 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
10873<p>The HAL may choose to substitute test patterns from the sensor
10874with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
10875indistinguishable to the ISP whether the data came from the
10876sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
10877 </td>
10878 </tr>
10879
10880 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10881 <!-- end of entry -->
10882
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010883
10884
10885 <!-- end of kind -->
10886 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010887 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010888
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010889 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010890 <tr>
10891 <th class="th_name">Property Name</th>
10892 <th class="th_type">Type</th>
10893 <th class="th_description">Description</th>
10894 <th class="th_units">Units</th>
10895 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010896 <th class="th_tags">Tags</th>
10897 </tr>
10898 </thead>
10899
10900 <tbody>
10901
10902
10903
10904
10905
10906
10907
10908
10909
10910
10911
10912
10913 <tr class="entry" id="static_android.sensor.info.activeArraySize">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010914 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010915 android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010916 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010917 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010918 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010919 <span class="entry_type_container">x</span>
10920
10921 <span class="entry_type_array">
10922 4
10923 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010924 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010925 <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010926
10927
10928 </td> <!-- entry_type -->
10929
10930 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010931 <p>Area of raw data which corresponds to only
Zhijun Hebdc94c42014-01-21 18:28:30 -080010932active pixels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010933 </td>
10934
10935 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010936 </td>
10937
10938 <td class="entry_range">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010939 <p>This array contains <code>(xmin,<wbr/> ymin,<wbr/> width,<wbr/> height)</code>.<wbr/> The <code>(xmin,<wbr/> ymin)</code> must be
10940&gt;= <code>(0,<wbr/>0)</code>.<wbr/> The <code>(width,<wbr/> height)</code> must be &lt;=
10941<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 -080010942 </td>
10943
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010944 <td class="entry_tags">
10945 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010946 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010947 </ul>
10948 </td>
10949
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010950 </tr>
Zhijun Hebdc94c42014-01-21 18:28:30 -080010951 <tr class="entries_header">
10952 <th class="th_details" colspan="5">Details</th>
10953 </tr>
10954 <tr class="entry_cont">
10955 <td class="entry_details" colspan="5">
10956 <p>It is smaller or equal to
10957sensor full pixel array,<wbr/> which could include the black calibration pixels.<wbr/></p>
10958 </td>
10959 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010960
10961
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010962 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10963 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010964
10965
Zhijun He69fc0ea2013-07-17 09:42:58 -070010966 <tr class="entry" id="static_android.sensor.info.sensitivityRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010967 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010968 android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010969 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010970 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010971 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010972 <span class="entry_type_container">x</span>
10973
10974 <span class="entry_type_array">
Zhijun He69fc0ea2013-07-17 09:42:58 -070010975 2
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010976 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010977 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010978 <div class="entry_type_notes">Range of supported sensitivities</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010979
10980
10981 </td> <!-- entry_type -->
10982
10983 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010984 <p>Range of valid sensitivities</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010985 </td>
10986
10987 <td class="entry_units">
10988 </td>
10989
10990 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010991 <p>Min &lt;= 100,<wbr/> Max &gt;= 1600</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010992 </td>
10993
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010994 <td class="entry_tags">
10995 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010996 <li><a href="#tag_BC">BC</a></li>
10997 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010998 </ul>
10999 </td>
11000
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011001 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011002
11003
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011004 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11005 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011006
11007
11008 <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011009 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011010 android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011011 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011012 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011013 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011014
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011015 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011016
11017 <ul class="entry_type_enum">
11018 <li>
11019 <span class="entry_type_enum_name">RGGB</span>
11020 </li>
11021 <li>
11022 <span class="entry_type_enum_name">GRBG</span>
11023 </li>
11024 <li>
11025 <span class="entry_type_enum_name">GBRG</span>
11026 </li>
11027 <li>
11028 <span class="entry_type_enum_name">BGGR</span>
11029 </li>
11030 <li>
11031 <span class="entry_type_enum_name">RGB</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011032 <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
11033values for each pixel,<wbr/> instead of just 1 16-bit value
11034per pixel.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011035 </li>
11036 </ul>
11037
11038 </td> <!-- entry_type -->
11039
11040 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011041 <p>Arrangement of color filters on sensor;
Igor Murashkin8aa2a112013-12-09 12:06:17 -080011042represents the colors in the top-left 2x2 section of
Igor Murashkin0b080452013-12-27 15:30:25 -080011043the sensor,<wbr/> in reading order</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011044 </td>
11045
11046 <td class="entry_units">
11047 </td>
11048
11049 <td class="entry_range">
11050 </td>
11051
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011052 <td class="entry_tags">
11053 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011054 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011055 </ul>
11056 </td>
11057
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011058 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011059
11060
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011061 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11062 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011063
11064
11065 <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
Igor Murashkin061c6002014-01-27 16:00:26 -080011066 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011067 android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011068 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011069 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011070 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011071 <span class="entry_type_container">x</span>
11072
11073 <span class="entry_type_array">
11074 2
11075 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011076 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011077 <div class="entry_type_notes">nanoseconds</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011078
11079
11080 </td> <!-- entry_type -->
11081
11082 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011083 <p>Range of valid exposure
Igor Murashkin061c6002014-01-27 16:00:26 -080011084times used by <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011085 </td>
11086
11087 <td class="entry_units">
11088 </td>
11089
11090 <td class="entry_range">
Igor Murashkin061c6002014-01-27 16:00:26 -080011091 <p>Min &lt;= 100e3 (100 us),<wbr/> Max &gt;= 1e9 (1
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011092sec)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011093 </td>
11094
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011095 <td class="entry_tags">
11096 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011097 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011098 </ul>
11099 </td>
11100
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011101 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011102
Igor Murashkin061c6002014-01-27 16:00:26 -080011103 <tr class="entries_header">
11104 <th class="th_details" colspan="5">HAL Implementation Details</th>
11105 </tr>
11106 <tr class="entry_cont">
11107 <td class="entry_details" colspan="5">
11108 <p>The maximum of the range must be at least
111091 second.<wbr/> It should be at least 30 seconds.<wbr/></p>
11110 </td>
11111 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011112
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011113 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11114 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011115
11116
11117 <tr class="entry" id="static_android.sensor.info.maxFrameDuration">
Igor Murashkin061c6002014-01-27 16:00:26 -080011118 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011119 android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011120 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011121 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011122 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011123
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011124 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011125
11126
11127 </td> <!-- entry_type -->
11128
11129 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011130 <p>Maximum possible frame duration (minimum frame
Igor Murashkin061c6002014-01-27 16:00:26 -080011131rate).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011132 </td>
11133
11134 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011135 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011136 </td>
11137
11138 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011139 <p>&gt;= 30e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011140 </td>
11141
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011142 <td class="entry_tags">
11143 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011144 <li><a href="#tag_BC">BC</a></li>
11145 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011146 </ul>
11147 </td>
11148
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011149 </tr>
11150 <tr class="entries_header">
11151 <th class="th_details" colspan="5">Details</th>
11152 </tr>
11153 <tr class="entry_cont">
11154 <td class="entry_details" colspan="5">
Igor Murashkin061c6002014-01-27 16:00:26 -080011155 <p>The largest possible android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
11156that will be accepted by the camera device.<wbr/> Attempting to use
11157frame durations beyond the maximum will result in the frame duration
11158being clipped to the maximum.<wbr/> See that control
11159for a full definition of frame durations.<wbr/></p>
11160<p>Refer to
11161<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>,<wbr/>
11162<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/> and
11163<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a> for the minimum
11164frame duration values.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011165 </td>
11166 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011167
Igor Murashkin061c6002014-01-27 16:00:26 -080011168 <tr class="entries_header">
11169 <th class="th_details" colspan="5">HAL Implementation Details</th>
11170 </tr>
11171 <tr class="entry_cont">
11172 <td class="entry_details" colspan="5">
11173 <p>This value must be at least 1 second.<wbr/> It should be at least 30
11174seconds (30e9 ns).<wbr/></p>
11175<p>android.<wbr/>sensor.<wbr/>max<wbr/>Frame<wbr/>Duration must be greater or equal to the
11176android.<wbr/>sensor.<wbr/>exposure<wbr/>Time<wbr/>Range max value (since exposure time
11177overrides frame duration).<wbr/></p>
11178 </td>
11179 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011180
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011181 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11182 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011183
11184
11185 <tr class="entry" id="static_android.sensor.info.physicalSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011186 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011187 android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011188 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011189 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011190 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011191 <span class="entry_type_container">x</span>
11192
11193 <span class="entry_type_array">
11194 2
11195 </span>
Timothy Knightec817d52013-08-16 16:15:29 -070011196 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011197 <div class="entry_type_notes">width x height in millimeters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011198
11199
11200 </td> <!-- entry_type -->
11201
11202 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011203 <p>The physical dimensions of the full pixel
11204array</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011205 </td>
11206
11207 <td class="entry_units">
11208 </td>
11209
11210 <td class="entry_range">
11211 </td>
11212
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011213 <td class="entry_tags">
11214 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011215 <li><a href="#tag_V1">V1</a></li>
11216 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011217 </ul>
11218 </td>
11219
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011220 </tr>
11221 <tr class="entries_header">
11222 <th class="th_details" colspan="5">Details</th>
11223 </tr>
11224 <tr class="entry_cont">
11225 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011226 <p>Needed for FOV calculation for old API</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011227 </td>
11228 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011229
11230
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011231 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11232 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011233
11234
11235 <tr class="entry" id="static_android.sensor.info.pixelArraySize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011236 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011237 android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011238 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011239 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011240 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011241 <span class="entry_type_container">x</span>
11242
11243 <span class="entry_type_array">
11244 2
11245 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070011246 <span class="entry_type_visibility"> [system as size]</span>
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>Dimensions of full pixel array,<wbr/> possibly
Zhijun Hebdc94c42014-01-21 18:28:30 -080011253including black calibration pixels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011254 </td>
11255
11256 <td class="entry_units">
11257 </td>
11258
11259 <td class="entry_range">
11260 </td>
11261
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011262 <td class="entry_tags">
11263 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011264 <li><a href="#tag_DNG">DNG</a></li>
11265 <li><a href="#tag_BC">BC</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">
Zhijun Hebdc94c42014-01-21 18:28:30 -080011275 <p>The maximum output resolution for raw format in
11276<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 -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.info.whiteLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011286 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011287 android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011288 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011289 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011290 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011291
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011292 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011293
11294
11295 </td> <!-- entry_type -->
11296
11297 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011298 <p>Maximum raw value output by
11299sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011300 </td>
11301
11302 <td class="entry_units">
11303 </td>
11304
11305 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011306 <p>&gt; 1024 (10-bit output)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011307 </td>
11308
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011309 <td class="entry_tags">
11310 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011311 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011312 </ul>
11313 </td>
11314
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011315 </tr>
11316 <tr class="entries_header">
11317 <th class="th_details" colspan="5">Details</th>
11318 </tr>
11319 <tr class="entry_cont">
11320 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011321 <p>Defines sensor bit depth (10-14 bits is
11322expected)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011323 </td>
11324 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011325
11326
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011327 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11328 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011329
11330
11331
11332
11333
11334 <tr class="entry" id="static_android.sensor.baseGainFactor">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011335 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011336 android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011337 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011338 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011339 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011340
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011341 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011342
11343
11344 </td> <!-- entry_type -->
11345
11346 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011347 <p>Gain factor from electrons to raw units when
11348ISO=100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011349 </td>
11350
11351 <td class="entry_units">
11352 </td>
11353
11354 <td class="entry_range">
11355 </td>
11356
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011357 <td class="entry_tags">
11358 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011359 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011360 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011361 </ul>
11362 </td>
11363
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011364 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011365
11366
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011367 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11368 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011369
11370
11371 <tr class="entry" id="static_android.sensor.blackLevelPattern">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011372 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011373 android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011374 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011375 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011376 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011377 <span class="entry_type_container">x</span>
11378
11379 <span class="entry_type_array">
11380 4
11381 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011382 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011383 <div class="entry_type_notes">2x2 raw count block</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011384
11385
11386 </td> <!-- entry_type -->
11387
11388 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011389 <p>A fixed black level offset for each of the
11390Bayer mosaic channels</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011391 </td>
11392
11393 <td class="entry_units">
11394 </td>
11395
11396 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011397 <p>&gt;= 0 each</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011398 </td>
11399
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011400 <td class="entry_tags">
11401 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011402 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011403 </ul>
11404 </td>
11405
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011406 </tr>
11407 <tr class="entries_header">
11408 <th class="th_details" colspan="5">Details</th>
11409 </tr>
11410 <tr class="entry_cont">
11411 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011412 <p>As per DNG BlackLevelRepeatDim /<wbr/> BlackLevel
11413tags</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011414 </td>
11415 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011416
11417
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011418 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11419 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011420
11421
11422 <tr class="entry" id="static_android.sensor.calibrationTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011423 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011424 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011425 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011426 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011427 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011428 <span class="entry_type_container">x</span>
11429
11430 <span class="entry_type_array">
11431 9
11432 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011433 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011434 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011435
11436
11437 </td> <!-- entry_type -->
11438
11439 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011440 <p>Per-device calibration on top of color space
11441transform 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011442 </td>
11443
11444 <td class="entry_units">
11445 </td>
11446
11447 <td class="entry_range">
11448 </td>
11449
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011450 <td class="entry_tags">
11451 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011452 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011453 </ul>
11454 </td>
11455
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011456 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011457
11458
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011459 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11460 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011461
11462
11463 <tr class="entry" id="static_android.sensor.calibrationTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011464 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011465 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011466 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011467 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011468 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011469 <span class="entry_type_container">x</span>
11470
11471 <span class="entry_type_array">
11472 9
11473 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011474 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011475 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011476
11477
11478 </td> <!-- entry_type -->
11479
11480 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011481 <p>Per-device calibration on top of color space
11482transform 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011483 </td>
11484
11485 <td class="entry_units">
11486 </td>
11487
11488 <td class="entry_range">
11489 </td>
11490
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011491 <td class="entry_tags">
11492 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011493 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011494 </ul>
11495 </td>
11496
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011497 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011498
11499
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011500 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11501 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011502
11503
11504 <tr class="entry" id="static_android.sensor.colorTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011505 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011506 android.<wbr/>sensor.<wbr/>color<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011507 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011508 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011509 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011510 <span class="entry_type_container">x</span>
11511
11512 <span class="entry_type_array">
11513 9
11514 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011515 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011516 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011517
11518
11519 </td> <!-- entry_type -->
11520
11521 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011522 <p>Linear mapping from XYZ (D50) color space to
11523reference linear sensor color,<wbr/> for first reference
11524illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011525 </td>
11526
11527 <td class="entry_units">
11528 </td>
11529
11530 <td class="entry_range">
11531 </td>
11532
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011533 <td class="entry_tags">
11534 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011535 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011536 </ul>
11537 </td>
11538
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011539 </tr>
11540 <tr class="entries_header">
11541 <th class="th_details" colspan="5">Details</th>
11542 </tr>
11543 <tr class="entry_cont">
11544 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011545 <p>Use as follows XYZ = inv(transform) * clip( (raw -
11546black level(raw) ) /<wbr/> ( white level - max black level) ).<wbr/>
11547At least in the simple case</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011548 </td>
11549 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011550
11551
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011552 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11553 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011554
11555
11556 <tr class="entry" id="static_android.sensor.colorTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011557 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011558 android.<wbr/>sensor.<wbr/>color<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011559 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011560 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011561 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011562 <span class="entry_type_container">x</span>
11563
11564 <span class="entry_type_array">
11565 9
11566 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011567 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011568 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011569
11570
11571 </td> <!-- entry_type -->
11572
11573 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011574 <p>Linear mapping from XYZ (D50) color space to
11575reference linear sensor color,<wbr/> for second reference
11576illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011577 </td>
11578
11579 <td class="entry_units">
11580 </td>
11581
11582 <td class="entry_range">
11583 </td>
11584
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011585 <td class="entry_tags">
11586 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011587 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011588 </ul>
11589 </td>
11590
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011591 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011592
11593
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011594 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11595 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011596
11597
11598 <tr class="entry" id="static_android.sensor.forwardMatrix1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011599 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011600 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011601 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011602 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011603 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011604 <span class="entry_type_container">x</span>
11605
11606 <span class="entry_type_array">
11607 9
11608 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011609 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011610 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011611
11612
11613 </td> <!-- entry_type -->
11614
11615 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011616 <p>Used by DNG for better WB
11617adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011618 </td>
11619
11620 <td class="entry_units">
11621 </td>
11622
11623 <td class="entry_range">
11624 </td>
11625
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011626 <td class="entry_tags">
11627 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011628 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011629 </ul>
11630 </td>
11631
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011632 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011633
11634
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011635 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11636 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011637
11638
11639 <tr class="entry" id="static_android.sensor.forwardMatrix2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011640 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011641 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011642 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011643 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011644 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011645 <span class="entry_type_container">x</span>
11646
11647 <span class="entry_type_array">
11648 9
11649 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011650 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011651 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011652
11653
11654 </td> <!-- entry_type -->
11655
11656 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011657 <p>Used by DNG for better WB
11658adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011659 </td>
11660
11661 <td class="entry_units">
11662 </td>
11663
11664 <td class="entry_range">
11665 </td>
11666
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011667 <td class="entry_tags">
11668 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011669 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011670 </ul>
11671 </td>
11672
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011673 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011674
11675
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011676 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11677 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011678
11679
11680 <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011681 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011682 android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011683 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011684 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011685 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011686
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011687 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011688
11689
11690 </td> <!-- entry_type -->
11691
11692 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011693 <p>Maximum sensitivity that is implemented
Zhijun Hebdc94c42014-01-21 18:28:30 -080011694purely through analog gain.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011695 </td>
11696
11697 <td class="entry_units">
11698 </td>
11699
11700 <td class="entry_range">
11701 </td>
11702
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011703 <td class="entry_tags">
11704 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011705 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011706 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011707 </ul>
11708 </td>
11709
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011710 </tr>
11711 <tr class="entries_header">
11712 <th class="th_details" colspan="5">Details</th>
11713 </tr>
11714 <tr class="entry_cont">
11715 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011716 <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 -080011717equal to this,<wbr/> all applied gain must be analog.<wbr/> For
Zhijun Hebdc94c42014-01-21 18:28:30 -080011718values above this,<wbr/> the gain applied can be a mix of analog and
11719digital.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011720 </td>
11721 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011722
11723
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011724 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11725 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011726
11727
11728 <tr class="entry" id="static_android.sensor.noiseModelCoefficients">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011729 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011730 android.<wbr/>sensor.<wbr/>noise<wbr/>Model<wbr/>Coefficients
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011731 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011732 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011733 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011734 <span class="entry_type_container">x</span>
11735
11736 <span class="entry_type_array">
11737 2
11738 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011739 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011740 <div class="entry_type_notes">float constants A,<wbr/> B for the noise variance model</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011741
11742
11743 </td> <!-- entry_type -->
11744
11745 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011746 <p>Estimation of sensor noise
11747characteristics</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011748 </td>
11749
11750 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011751 var(raw pixel value) = electrons * (baseGainFactor
11752 * iso/<wbr/>100)^2 + A * (baseGainFactor * iso/<wbr/>100)^2 +
11753 B
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011754 </td>
11755
11756 <td class="entry_range">
11757 </td>
11758
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011759 <td class="entry_tags">
11760 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011761 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011762 </ul>
11763 </td>
11764
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011765 </tr>
11766 <tr class="entries_header">
11767 <th class="th_details" colspan="5">Details</th>
11768 </tr>
11769 <tr class="entry_cont">
11770 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011771 <p>A represents sensor read noise before analog
11772amplification; B represents noise from A/<wbr/>D conversion and
11773other circuits after amplification.<wbr/> Both noise sources
11774are assumed to be gaussian,<wbr/> independent,<wbr/> and not to vary
11775across the sensor</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011776 </td>
11777 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011778
11779
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011780 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11781 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011782
11783
11784 <tr class="entry" id="static_android.sensor.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011785 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011786 android.<wbr/>sensor.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011787 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011788 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011789 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011790
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011791 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011792
11793
11794 </td> <!-- entry_type -->
11795
11796 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011797 <p>Clockwise angle through which the output
Igor Murashkin8aa2a112013-12-09 12:06:17 -080011798image needs to be rotated to be upright on the device
Igor Murashkin0b080452013-12-27 15:30:25 -080011799screen in its native orientation.<wbr/> Also defines the
11800direction of rolling shutter readout,<wbr/> which is from top
11801to bottom in the sensor's coordinate system</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011802 </td>
11803
11804 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011805 degrees clockwise rotation,<wbr/> only multiples of
11806 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011807 </td>
11808
11809 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011810 <p>0,<wbr/>90,<wbr/>180,<wbr/>270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011811 </td>
11812
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011813 <td class="entry_tags">
11814 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011815 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011816 </ul>
11817 </td>
11818
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011819 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011820
11821
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011822 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11823 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011824
11825
11826 <tr class="entry" id="static_android.sensor.referenceIlluminant1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011827 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011828 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011829 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011830 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011831 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011832
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011833 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011834
11835 <ul class="entry_type_enum">
11836 <li>
11837 <span class="entry_type_enum_name">DAYLIGHT</span>
11838 <span class="entry_type_enum_value">1</span>
11839 </li>
11840 <li>
11841 <span class="entry_type_enum_name">FLUORESCENT</span>
11842 <span class="entry_type_enum_value">2</span>
11843 </li>
11844 <li>
11845 <span class="entry_type_enum_name">TUNGSTEN</span>
11846 <span class="entry_type_enum_value">3</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011847 <span class="entry_type_enum_notes"><p>Incandescent light</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011848 </li>
11849 <li>
11850 <span class="entry_type_enum_name">FLASH</span>
11851 <span class="entry_type_enum_value">4</span>
11852 </li>
11853 <li>
11854 <span class="entry_type_enum_name">FINE_WEATHER</span>
11855 <span class="entry_type_enum_value">9</span>
11856 </li>
11857 <li>
11858 <span class="entry_type_enum_name">CLOUDY_WEATHER</span>
11859 <span class="entry_type_enum_value">10</span>
11860 </li>
11861 <li>
11862 <span class="entry_type_enum_name">SHADE</span>
11863 <span class="entry_type_enum_value">11</span>
11864 </li>
11865 <li>
11866 <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span>
11867 <span class="entry_type_enum_value">12</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011868 <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011869 </li>
11870 <li>
11871 <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span>
11872 <span class="entry_type_enum_value">13</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011873 <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011874 </li>
11875 <li>
11876 <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span>
11877 <span class="entry_type_enum_value">14</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011878 <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011879 </li>
11880 <li>
11881 <span class="entry_type_enum_name">WHITE_FLUORESCENT</span>
11882 <span class="entry_type_enum_value">15</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011883 <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011884 </li>
11885 <li>
11886 <span class="entry_type_enum_name">STANDARD_A</span>
11887 <span class="entry_type_enum_value">17</span>
11888 </li>
11889 <li>
11890 <span class="entry_type_enum_name">STANDARD_B</span>
11891 <span class="entry_type_enum_value">18</span>
11892 </li>
11893 <li>
11894 <span class="entry_type_enum_name">STANDARD_C</span>
11895 <span class="entry_type_enum_value">19</span>
11896 </li>
11897 <li>
11898 <span class="entry_type_enum_name">D55</span>
11899 <span class="entry_type_enum_value">20</span>
11900 </li>
11901 <li>
11902 <span class="entry_type_enum_name">D65</span>
11903 <span class="entry_type_enum_value">21</span>
11904 </li>
11905 <li>
11906 <span class="entry_type_enum_name">D75</span>
11907 <span class="entry_type_enum_value">22</span>
11908 </li>
11909 <li>
11910 <span class="entry_type_enum_name">D50</span>
11911 <span class="entry_type_enum_value">23</span>
11912 </li>
11913 <li>
11914 <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span>
11915 <span class="entry_type_enum_value">24</span>
11916 </li>
11917 </ul>
11918
11919 </td> <!-- entry_type -->
11920
11921 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011922 <p>Light source used to define transform
119231</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011924 </td>
11925
11926 <td class="entry_units">
11927 </td>
11928
11929 <td class="entry_range">
11930 </td>
11931
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011932 <td class="entry_tags">
11933 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011934 <li><a href="#tag_DNG">DNG</a></li>
11935 <li><a href="#tag_EXIF">EXIF</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011936 </ul>
11937 </td>
11938
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011939 </tr>
11940 <tr class="entries_header">
11941 <th class="th_details" colspan="5">Details</th>
11942 </tr>
11943 <tr class="entry_cont">
11944 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011945 <p>[EXIF LightSource tag] Must all these be
11946supported? Need CCT for each!</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011947 </td>
11948 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011949
11950
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011951 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11952 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011953
11954
11955 <tr class="entry" id="static_android.sensor.referenceIlluminant2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011956 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011957 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011958 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011959 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011960 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011961
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011962 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011963
11964
11965 </td> <!-- entry_type -->
11966
11967 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011968 <p>Light source used to define transform
119692</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011970 </td>
11971
11972 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011973 Same as illuminant 1
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011974 </td>
11975
11976 <td class="entry_range">
11977 </td>
11978
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011979 <td class="entry_tags">
11980 </td>
11981
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011982 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011983
11984
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011985 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11986 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011987
Igor Murashkina46e02f2014-01-09 17:43:38 -080011988
11989 <tr class="entry" id="static_android.sensor.availableTestPatternModes">
11990 <td class="entry_name" rowspan="1">
11991 android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes
11992 </td>
11993 <td class="entry_type">
11994 <span class="entry_type_name">byte</span>
11995
11996 <span class="entry_type_visibility"> [public]</span>
11997
11998
11999 </td> <!-- entry_type -->
12000
12001 <td class="entry_description">
12002 <p>Optional.<wbr/> Defaults to [OFF].<wbr/> Lists the supported test
12003pattern modes for android.<wbr/>test.<wbr/>pattern<wbr/>Mode.<wbr/></p>
12004 </td>
12005
12006 <td class="entry_units">
12007 </td>
12008
12009 <td class="entry_range">
12010 <p>Must include OFF.<wbr/> All custom modes must be &gt;= CUSTOM1</p>
12011 </td>
12012
12013 <td class="entry_tags">
12014 </td>
12015
12016 </tr>
12017
12018
12019 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12020 <!-- end of entry -->
12021
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012022
12023
12024 <!-- end of kind -->
12025 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012026 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012027
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012028 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012029 <tr>
12030 <th class="th_name">Property Name</th>
12031 <th class="th_type">Type</th>
12032 <th class="th_description">Description</th>
12033 <th class="th_units">Units</th>
12034 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012035 <th class="th_tags">Tags</th>
12036 </tr>
12037 </thead>
12038
12039 <tbody>
12040
12041
12042
12043
12044
12045
12046
12047
12048
12049
12050 <tr class="entry" id="dynamic_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012051 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012052 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012053 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012054 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012055 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012056
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012057 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012058
12059
12060 </td> <!-- entry_type -->
12061
12062 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012063 <p>Duration each pixel is exposed to
12064light.<wbr/></p>
12065<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
12066duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012067 </td>
12068
12069 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012070 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012071 </td>
12072
12073 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012074 <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 -080012075 </td>
12076
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012077 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012078 <ul class="entry_tags">
12079 <li><a href="#tag_V1">V1</a></li>
12080 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012081 </td>
12082
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012083 </tr>
12084 <tr class="entries_header">
12085 <th class="th_details" colspan="5">Details</th>
12086 </tr>
12087 <tr class="entry_cont">
12088 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012089 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012090 </td>
12091 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012092
12093
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012094 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12095 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012096
12097
12098 <tr class="entry" id="dynamic_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012099 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012100 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012101 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012102 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012103 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012104
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012105 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012106
12107
12108 </td> <!-- entry_type -->
12109
12110 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012111 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012112start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012113 </td>
12114
12115 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012116 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012117 </td>
12118
12119 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012120 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
12121android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
12122is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012123 </td>
12124
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012125 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012126 <ul class="entry_tags">
12127 <li><a href="#tag_V1">V1</a></li>
12128 <li><a href="#tag_BC">BC</a></li>
12129 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012130 </td>
12131
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012132 </tr>
12133 <tr class="entries_header">
12134 <th class="th_details" colspan="5">Details</th>
12135 </tr>
12136 <tr class="entry_cont">
12137 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012138 <p>The maximum frame rate that can be supported by a camera subsystem is
12139a function of many factors:</p>
12140<ul>
12141<li>Requested resolutions of output image streams</li>
12142<li>Availability of binning /<wbr/> skipping modes on the imager</li>
12143<li>The bandwidth of the imager interface</li>
12144<li>The bandwidth of the various ISP processing blocks</li>
12145</ul>
12146<p>Since these factors can vary greatly between different ISPs and
12147sensors,<wbr/> the camera abstraction tries to represent the bandwidth
12148restrictions with as simple a model as possible.<wbr/></p>
12149<p>The model presented has the following characteristics:</p>
12150<ul>
12151<li>The image sensor is always configured to output the smallest
12152resolution possible given the application's requested output stream
12153sizes.<wbr/> The smallest resolution is defined as being at least as large
12154as the largest requested output stream size; the camera pipeline must
12155never digitally upsample sensor data when the crop region covers the
12156whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
12157resolutions are configured,<wbr/> the sensor can provide a higher frame
12158rate.<wbr/></li>
12159<li>Since any request may use any or all the currently configured
12160output streams,<wbr/> the sensor and ISP must be configured to support
12161scaling a single capture to all the streams at the same time.<wbr/> This
12162means the camera pipeline must be ready to produce the largest
12163requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
12164frame rate of a given configured stream set is governed only by the
12165largest requested stream resolution.<wbr/></li>
12166<li>Using more than one output stream in a request does not affect the
12167frame duration.<wbr/></li>
12168<li>JPEG streams act like processed YUV streams in requests for which
12169they are not included; in requests in which they are directly
12170referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
12171JPEG stream requires the underlying YUV data to always be ready for
12172use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
12173frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
12174<li>The JPEG processor can run concurrently to the rest of the camera
12175pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
12176</ul>
12177<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
12178is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
12179These are used to determine the maximum frame rate /<wbr/> minimum frame
12180duration that is possible for a given stream configuration.<wbr/></p>
12181<p>Specifically,<wbr/> the application can use the following rules to
12182determine the minimum frame duration it can request from the HAL
12183device:</p>
12184<ol>
12185<li>Given the application's currently configured set of output
12186streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
12187<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
12188<code>SP</code>.<wbr/></li>
12189<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
12190count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
12191<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
12192<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
12193no exact match for <code>RP == RJ</code> (in particular there isn't an available
12194processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
12195to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
12196there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
12197the processed resolution closest to <code>RJ</code>.<wbr/></li>
12198<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
12199no exact match for <code>RR == RP</code> (in particular there isn't an available
12200raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
12201or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
12202there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
12203the raw resolution closest to <code>RP</code>.<wbr/></li>
12204<li>Look up the matching minimum frame durations in the property lists
12205<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
12206<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
12207<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
12208minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
12209<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
12210supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
12211<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
12212supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
12213<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
12214the application,<wbr/> then the HAL will have to delay JPEG-using requests
12215whenever the JPEG encoder is still busy processing an older capture.<wbr/>
12216This will happen whenever a JPEG-using request starts capture less
12217than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
12218supported frame duration will vary between the values calculated in
12219#6 and #7.<wbr/></li>
12220</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012221 </td>
12222 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012223
12224
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012225 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12226 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012227
12228
12229 <tr class="entry" id="dynamic_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012230 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012231 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012232 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012233 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012234 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012235
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012236 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012237
12238
12239 </td> <!-- entry_type -->
12240
12241 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012242 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012243implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080012244below 'maximum analog sensitivity'.<wbr/></p>
12245<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
12246gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012247 </td>
12248
12249 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012250 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012251 </td>
12252
12253 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012254 <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 -080012255 </td>
12256
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012257 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012258 <ul class="entry_tags">
12259 <li><a href="#tag_V1">V1</a></li>
12260 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012261 </td>
12262
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012263 </tr>
12264 <tr class="entries_header">
12265 <th class="th_details" colspan="5">Details</th>
12266 </tr>
12267 <tr class="entry_cont">
12268 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012269 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012270 </td>
12271 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012272
12273
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012274 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12275 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012276
12277
12278 <tr class="entry" id="dynamic_android.sensor.timestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012279 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012280 android.<wbr/>sensor.<wbr/>timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012281 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012282 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012283 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012284
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012285 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012286
12287
12288 </td> <!-- entry_type -->
12289
12290 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012291 <p>Time at start of exposure of first
12292row</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012293 </td>
12294
12295 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012296 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012297 </td>
12298
12299 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012300 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012301 </td>
12302
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012303 <td class="entry_tags">
12304 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012305 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012306 </ul>
12307 </td>
12308
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012309 </tr>
12310 <tr class="entries_header">
12311 <th class="th_details" colspan="5">Details</th>
12312 </tr>
12313 <tr class="entry_cont">
12314 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012315 <p>Monotonic,<wbr/> should be synced to other timestamps in
12316system</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012317 </td>
12318 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012319
12320
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012321 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12322 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012323
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012324
12325 <tr class="entry" id="dynamic_android.sensor.temperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012326 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012327 android.<wbr/>sensor.<wbr/>temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012328 </td>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012329 <td class="entry_type">
12330 <span class="entry_type_name">float</span>
12331
12332 <span class="entry_type_visibility"> [public]</span>
12333
12334
12335 </td> <!-- entry_type -->
12336
12337 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012338 <p>The temperature of the sensor,<wbr/> sampled at the time
12339exposure began for this frame.<wbr/></p>
12340<p>The thermal diode being queried should be inside the sensor PCB,<wbr/> or
12341somewhere close to it.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012342 </td>
12343
12344 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012345 celsius
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012346 </td>
12347
12348 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012349 <p>Optional.<wbr/> This value is missing if no temperature is available.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012350 </td>
12351
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012352 <td class="entry_tags">
Alex Rayef40ad62013-10-01 17:52:33 -070012353 <ul class="entry_tags">
12354 <li><a href="#tag_FULL">FULL</a></li>
12355 </ul>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012356 </td>
12357
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012358 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012359
12360
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012361 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12362 <!-- end of entry -->
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012363
Igor Murashkina46e02f2014-01-09 17:43:38 -080012364
12365 <tr class="entry" id="dynamic_android.sensor.testPatternMode">
12366 <td class="entry_name" rowspan="5">
12367 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
12368 </td>
12369 <td class="entry_type">
12370 <span class="entry_type_name entry_type_name_enum">int32</span>
12371
12372 <span class="entry_type_visibility"> [public]</span>
12373
12374 <ul class="entry_type_enum">
12375 <li>
12376 <span class="entry_type_enum_name">OFF</span>
12377 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
12378device returns captures from the image sensor.<wbr/></p></span>
12379 </li>
12380 <li>
12381 <span class="entry_type_enum_name">SOLID_COLOR</span>
12382 <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
12383respective color channel provided in
12384<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
12385<p>For example:</p>
12386<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12387</code></pre>
12388<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
12389<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12390</code></pre>
12391<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
12392are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
12393 </li>
12394 <li>
12395 <span class="entry_type_enum_name">COLOR_BARS</span>
12396 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
12397<p>The vertical bars (left-to-right) are as follows:</p>
12398<ul>
12399<li>100% white</li>
12400<li>yellow</li>
12401<li>cyan</li>
12402<li>green</li>
12403<li>magenta</li>
12404<li>red</li>
12405<li>blue</li>
12406<li>black</li>
12407</ul>
12408<p>In general the image would look like the following:</p>
12409<pre><code>W Y C G M R B K
12410W Y C G M R B K
12411W Y C G M R B K
12412W Y C G M R B K
12413W Y C G M R B K
12414.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12415.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12416.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12417
12418(B = Blue,<wbr/> K = Black)
12419</code></pre>
12420<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
12421When this is not possible,<wbr/> the bar size should be rounded
12422down to the nearest integer and the pattern can repeat
12423on the right side.<wbr/></p>
12424<p>Each bar's height must always take up the full sensor
12425pixel array height.<wbr/></p>
12426<p>Each pixel in this test pattern must be set to either
124270% intensity or 100% intensity.<wbr/></p></span>
12428 </li>
12429 <li>
12430 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
12431 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
12432each bar should start at its specified color at the top,<wbr/>
12433and fade to gray at the bottom.<wbr/></p>
12434<p>Furthermore each bar is further subdivided into a left and
12435right half.<wbr/> The left half should have a smooth gradient,<wbr/>
12436and the right half should have a quantized gradient.<wbr/></p>
12437<p>In particular,<wbr/> the right half's should consist of blocks of the
12438same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
12439<p>The least significant bits in the quantized gradient should
12440be copied from the most significant bits of the smooth gradient.<wbr/></p>
12441<p>The height of each bar should always be a multiple of 128.<wbr/>
12442When this is not the case,<wbr/> the pattern should repeat at the bottom
12443of the image.<wbr/></p></span>
12444 </li>
12445 <li>
12446 <span class="entry_type_enum_name">PN9</span>
12447 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
12448generated from a PN9 512-bit sequence (typically implemented
12449in hardware with a linear feedback shift register).<wbr/></p>
12450<p>The generator should be reset at the beginning of each frame,<wbr/>
12451and thus each subsequent raw frame with this test pattern should
12452be exactly the same as the last.<wbr/></p></span>
12453 </li>
12454 <li>
12455 <span class="entry_type_enum_name">CUSTOM1</span>
12456 <span class="entry_type_enum_value">256</span>
12457 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
12458available only on this camera device are at least this numeric
12459value.<wbr/></p>
12460<p>All of the custom test patterns will be static
12461(that is the raw image must not vary from frame to frame).<wbr/></p></span>
12462 </li>
12463 </ul>
12464
12465 </td> <!-- entry_type -->
12466
12467 <td class="entry_description">
12468 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
12469doing a real exposure from the camera.<wbr/></p>
12470 </td>
12471
12472 <td class="entry_units">
12473 </td>
12474
12475 <td class="entry_range">
12476 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
12477<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
12478 </td>
12479
12480 <td class="entry_tags">
12481 </td>
12482
12483 </tr>
12484 <tr class="entries_header">
12485 <th class="th_details" colspan="5">Details</th>
12486 </tr>
12487 <tr class="entry_cont">
12488 <td class="entry_details" colspan="5">
12489 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
12490by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
12491work as normal.<wbr/></p>
12492<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
12493occur (and that the test pattern remain unmodified,<wbr/> since the flash
12494would not actually affect it).<wbr/></p>
12495 </td>
12496 </tr>
12497
12498 <tr class="entries_header">
12499 <th class="th_details" colspan="5">HAL Implementation Details</th>
12500 </tr>
12501 <tr class="entry_cont">
12502 <td class="entry_details" colspan="5">
12503 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
12504<p>The HAL may choose to substitute test patterns from the sensor
12505with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
12506indistinguishable to the ISP whether the data came from the
12507sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
12508 </td>
12509 </tr>
12510
12511 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12512 <!-- end of entry -->
12513
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012514
12515
12516 <!-- end of kind -->
12517 </tbody>
12518
12519 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012520 <tr><td colspan="6" id="section_shading" class="section">shading</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012521
12522
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012523 <tr><td colspan="6" class="kind">controls</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="controls_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 <tr class="entry" id="controls_android.shading.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012620 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012621 android.<wbr/>shading.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012622 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012623 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012624 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012625
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012626 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012627
12628
12629 </td> <!-- entry_type -->
12630
12631 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012632 <p>Control the amount of shading correction
12633applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012634 </td>
12635
12636 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012637 unitless: 1-10; 10 is full shading
12638 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012639 </td>
12640
12641 <td class="entry_range">
12642 </td>
12643
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012644 <td class="entry_tags">
12645 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012646 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012647 </ul>
12648 </td>
12649
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012650 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012651
12652
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012653 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12654 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012655
12656
12657
12658 <!-- end of kind -->
12659 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012660 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012661
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012662 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012663 <tr>
12664 <th class="th_name">Property Name</th>
12665 <th class="th_type">Type</th>
12666 <th class="th_description">Description</th>
12667 <th class="th_units">Units</th>
12668 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012669 <th class="th_tags">Tags</th>
12670 </tr>
12671 </thead>
12672
12673 <tbody>
12674
12675
12676
12677
12678
12679
12680
12681
12682
12683
12684 <tr class="entry" id="dynamic_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012685 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012686 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012687 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012688 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012689 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012690
Zhijun He2f86a212014-01-15 10:34:02 -080012691 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012692
12693 <ul class="entry_type_enum">
12694 <li>
12695 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012696 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012697 </li>
12698 <li>
12699 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012700 <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 -080012701 </li>
12702 <li>
12703 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012704 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012705 </li>
12706 </ul>
12707
12708 </td> <!-- entry_type -->
12709
12710 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012711 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012712to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012713 </td>
12714
12715 <td class="entry_units">
12716 </td>
12717
12718 <td class="entry_range">
12719 </td>
12720
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012721 <td class="entry_tags">
12722 </td>
12723
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012724 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012725 <tr class="entries_header">
12726 <th class="th_details" colspan="5">Details</th>
12727 </tr>
12728 <tr class="entry_cont">
12729 <td class="entry_details" colspan="5">
12730 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12731camera device,<wbr/> and an identity lens shading map data will be provided
12732if <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
12733shading 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/>
12734the 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
12735shown below:</p>
12736<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/>
12737 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/>
12738 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/>
12739 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/>
12740 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/>
12741 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 ]
12742</code></pre>
12743<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12744camera device.<wbr/> Applications can request lens shading map data by setting
12745<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
12746lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12747by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12748 </td>
12749 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012750
12751
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012752 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12753 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012754
12755
12756
12757 <!-- end of kind -->
12758 </tbody>
12759
12760 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012761 <tr><td colspan="6" id="section_statistics" class="section">statistics</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012762
12763
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012764 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012765
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012766 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012767 <tr>
12768 <th class="th_name">Property Name</th>
12769 <th class="th_type">Type</th>
12770 <th class="th_description">Description</th>
12771 <th class="th_units">Units</th>
12772 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012773 <th class="th_tags">Tags</th>
12774 </tr>
12775 </thead>
12776
12777 <tbody>
12778
12779
12780
12781
12782
12783
12784
12785
12786
12787
12788 <tr class="entry" id="controls_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012789 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012790 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012791 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012792 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012793 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012794
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012795 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012796
12797 <ul class="entry_type_enum">
12798 <li>
12799 <span class="entry_type_enum_name">OFF</span>
12800 </li>
12801 <li>
12802 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012803 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
12804only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012805 </li>
12806 <li>
12807 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012808 <span class="entry_type_enum_notes"><p>Optional Return all face
12809metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012810 </li>
12811 </ul>
12812
12813 </td> <!-- entry_type -->
12814
12815 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012816 <p>State of the face detector
12817unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012818 </td>
12819
12820 <td class="entry_units">
12821 </td>
12822
12823 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012824 <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 -080012825 </td>
12826
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012827 <td class="entry_tags">
12828 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012829 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012830 </ul>
12831 </td>
12832
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012833 </tr>
12834 <tr class="entries_header">
12835 <th class="th_details" colspan="5">Details</th>
12836 </tr>
12837 <tr class="entry_cont">
12838 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012839 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012840should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080012841fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012842<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 -080012843 </td>
12844 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012845
12846
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012847 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12848 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012849
12850
12851 <tr class="entry" id="controls_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012852 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012853 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012854 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012855 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012856 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012857
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012858 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012859
12860 <ul class="entry_type_enum">
12861 <li>
12862 <span class="entry_type_enum_name">OFF</span>
12863 </li>
12864 <li>
12865 <span class="entry_type_enum_name">ON</span>
12866 </li>
12867 </ul>
12868
12869 </td> <!-- entry_type -->
12870
12871 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012872 <p>Operating mode for histogram
12873generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012874 </td>
12875
12876 <td class="entry_units">
12877 </td>
12878
12879 <td class="entry_range">
12880 </td>
12881
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012882 <td class="entry_tags">
12883 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012884 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012885 </ul>
12886 </td>
12887
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012888 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012889
12890
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012891 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12892 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012893
12894
12895 <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012896 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012897 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012898 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012899 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012900 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012901
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012902 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012903
12904 <ul class="entry_type_enum">
12905 <li>
12906 <span class="entry_type_enum_name">OFF</span>
12907 </li>
12908 <li>
12909 <span class="entry_type_enum_name">ON</span>
12910 </li>
12911 </ul>
12912
12913 </td> <!-- entry_type -->
12914
12915 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012916 <p>Operating mode for sharpness map
12917generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012918 </td>
12919
12920 <td class="entry_units">
12921 </td>
12922
12923 <td class="entry_range">
12924 </td>
12925
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012926 <td class="entry_tags">
12927 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012928 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012929 </ul>
12930 </td>
12931
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
Zhijun He69fc0ea2013-07-17 09:42:58 -070012938
12939 <tr class="entry" id="controls_android.statistics.lensShadingMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012940 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012941 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012942 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012943 <td class="entry_type">
12944 <span class="entry_type_name entry_type_name_enum">byte</span>
12945
12946 <span class="entry_type_visibility"> [public]</span>
12947
12948 <ul class="entry_type_enum">
12949 <li>
12950 <span class="entry_type_enum_name">OFF</span>
12951 </li>
12952 <li>
12953 <span class="entry_type_enum_name">ON</span>
12954 </li>
12955 </ul>
12956
12957 </td> <!-- entry_type -->
12958
12959 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012960 <p>Whether the HAL needs to output the lens
12961shading map in output result metadata</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012962 </td>
12963
12964 <td class="entry_units">
12965 </td>
12966
12967 <td class="entry_range">
12968 </td>
12969
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012970 <td class="entry_tags">
12971 </td>
12972
12973 </tr>
12974 <tr class="entries_header">
12975 <th class="th_details" colspan="5">Details</th>
12976 </tr>
12977 <tr class="entry_cont">
12978 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012979 <p>When set to ON,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012980<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 -080012981the output result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012982 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012983 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012984
12985
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012986 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12987 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070012988
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012989
12990
12991 <!-- end of kind -->
12992 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012993 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012994
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012995 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012996 <tr>
12997 <th class="th_name">Property Name</th>
12998 <th class="th_type">Type</th>
12999 <th class="th_description">Description</th>
13000 <th class="th_units">Units</th>
13001 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013002 <th class="th_tags">Tags</th>
13003 </tr>
13004 </thead>
13005
13006 <tbody>
13007
13008
13009
13010
13011
13012
13013
13014
13015
13016
13017
13018
13019 <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013020 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013021 android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013022 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013023 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013024 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013025 <span class="entry_type_container">x</span>
13026
13027 <span class="entry_type_array">
13028 n
13029 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013030 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013031 <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 -080013032
13033
13034 </td> <!-- entry_type -->
13035
13036 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013037 <p>Which face detection modes are available,<wbr/>
13038if any</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013039 </td>
13040
13041 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080013042 List of enum:
Zhijun He69fc0ea2013-07-17 09:42:58 -070013043 OFF
13044 SIMPLE
Igor Murashkin0b080452013-12-27 15:30:25 -080013045 FULL
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013046 </td>
13047
13048 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013049 </td>
13050
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013051 <td class="entry_tags">
13052 </td>
13053
13054 </tr>
13055 <tr class="entries_header">
13056 <th class="th_details" colspan="5">Details</th>
13057 </tr>
13058 <tr class="entry_cont">
13059 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013060 <p>OFF means face detection is disabled,<wbr/> it must
13061be included in the list.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013062<p>SIMPLE means the device supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013063<a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
13064<a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a> outputs.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013065<p>FULL means the device additionally supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013066<a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a> and
13067<a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a> outputs.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013068 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013069 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013070
13071
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013072 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13073 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013074
13075
13076 <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013077 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013078 android.<wbr/>statistics.<wbr/>info.<wbr/>histogram<wbr/>Bucket<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013079 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013080 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013081 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013082
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013083 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013084
13085
13086 </td> <!-- entry_type -->
13087
13088 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013089 <p>Number of histogram buckets
13090supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013091 </td>
13092
13093 <td class="entry_units">
13094 </td>
13095
13096 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080013097 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013098 </td>
13099
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013100 <td class="entry_tags">
13101 </td>
13102
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013103 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013104
13105
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013106 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13107 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013108
13109
13110 <tr class="entry" id="static_android.statistics.info.maxFaceCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013111 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013112 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013113 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013114 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013115 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013116
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013117 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013118
13119
13120 </td> <!-- entry_type -->
13121
13122 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013123 <p>Maximum number of simultaneously detectable
13124faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013125 </td>
13126
13127 <td class="entry_units">
13128 </td>
13129
13130 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080013131 <p>&gt;= 4 if availableFaceDetectionModes lists
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013132modes besides OFF,<wbr/> otherwise 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013133 </td>
13134
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013135 <td class="entry_tags">
13136 </td>
13137
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013138 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013139
13140
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013141 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13142 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013143
13144
13145 <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013146 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013147 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Histogram<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013148 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013149 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013150 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013151
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013152 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013153
13154
13155 </td> <!-- entry_type -->
13156
13157 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013158 <p>Maximum value possible for a histogram
13159bucket</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013160 </td>
13161
13162 <td class="entry_units">
13163 </td>
13164
13165 <td class="entry_range">
13166 </td>
13167
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013168 <td class="entry_tags">
13169 </td>
13170
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013171 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013172
13173
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013174 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13175 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013176
13177
13178 <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013179 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013180 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Sharpness<wbr/>Map<wbr/>Value
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013181 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013182 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013183 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013184
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013185 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013186
13187
13188 </td> <!-- entry_type -->
13189
13190 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013191 <p>Maximum value possible for a sharpness map
13192region.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013193 </td>
13194
13195 <td class="entry_units">
13196 </td>
13197
13198 <td class="entry_range">
13199 </td>
13200
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013201 <td class="entry_tags">
13202 </td>
13203
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013204 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013205
13206
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013207 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13208 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013209
13210
13211 <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013212 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013213 android.<wbr/>statistics.<wbr/>info.<wbr/>sharpness<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013214 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013215 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013216 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013217 <span class="entry_type_container">x</span>
13218
13219 <span class="entry_type_array">
13220 2
13221 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013222 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013223 <div class="entry_type_notes">width x height</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013224
13225
13226 </td> <!-- entry_type -->
13227
13228 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013229 <p>Dimensions of the sharpness
13230map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013231 </td>
13232
13233 <td class="entry_units">
13234 </td>
13235
13236 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013237 <p>Must be at least 32 x 32</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013238 </td>
13239
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013240 <td class="entry_tags">
13241 </td>
13242
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013243 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013244
13245
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013246 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13247 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013248
13249
13250
13251
13252
13253
13254 <!-- end of kind -->
13255 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013256 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013257
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013258 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013259 <tr>
13260 <th class="th_name">Property Name</th>
13261 <th class="th_type">Type</th>
13262 <th class="th_description">Description</th>
13263 <th class="th_units">Units</th>
13264 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013265 <th class="th_tags">Tags</th>
13266 </tr>
13267 </thead>
13268
13269 <tbody>
13270
13271
13272
13273
13274
13275
13276
13277
13278
13279
13280 <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013281 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013282 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013283 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013284 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013285 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013286
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013287 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013288
13289 <ul class="entry_type_enum">
13290 <li>
13291 <span class="entry_type_enum_name">OFF</span>
13292 </li>
13293 <li>
13294 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013295 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
13296only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013297 </li>
13298 <li>
13299 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013300 <span class="entry_type_enum_notes"><p>Optional Return all face
13301metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013302 </li>
13303 </ul>
13304
13305 </td> <!-- entry_type -->
13306
13307 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013308 <p>State of the face detector
13309unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013310 </td>
13311
13312 <td class="entry_units">
13313 </td>
13314
13315 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013316 <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 -080013317 </td>
13318
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013319 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013320 <ul class="entry_tags">
13321 <li><a href="#tag_BC">BC</a></li>
13322 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013323 </td>
13324
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013325 </tr>
13326 <tr class="entries_header">
13327 <th class="th_details" colspan="5">Details</th>
13328 </tr>
13329 <tr class="entry_cont">
13330 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013331 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013332should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080013333fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013334<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 -080013335 </td>
13336 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013337
13338
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013339 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13340 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013341
13342
13343 <tr class="entry" id="dynamic_android.statistics.faceIds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013344 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013345 android.<wbr/>statistics.<wbr/>face<wbr/>Ids
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013346 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013347 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013348 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013349 <span class="entry_type_container">x</span>
13350
13351 <span class="entry_type_array">
13352 n
13353 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013354 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013355
13356
13357 </td> <!-- entry_type -->
13358
13359 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013360 <p>List of unique IDs for detected
13361faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013362 </td>
13363
13364 <td class="entry_units">
13365 </td>
13366
13367 <td class="entry_range">
13368 </td>
13369
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013370 <td class="entry_tags">
13371 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013372 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013373 </ul>
13374 </td>
13375
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013376 </tr>
13377 <tr class="entries_header">
13378 <th class="th_details" colspan="5">Details</th>
13379 </tr>
13380 <tr class="entry_cont">
13381 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013382 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013383 </td>
13384 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013385
13386
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013387 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13388 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013389
13390
13391 <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013392 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013393 android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013394 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013395 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013396 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013397 <span class="entry_type_container">x</span>
13398
13399 <span class="entry_type_array">
13400 n x 6
13401 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013402 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013403 <div class="entry_type_notes">(leftEyeX,<wbr/> leftEyeY,<wbr/> rightEyeX,<wbr/> rightEyeY,<wbr/> mouthX,<wbr/> mouthY)</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013404
13405
13406 </td> <!-- entry_type -->
13407
13408 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013409 <p>List of landmarks for detected
13410faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013411 </td>
13412
13413 <td class="entry_units">
13414 </td>
13415
13416 <td class="entry_range">
13417 </td>
13418
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013419 <td class="entry_tags">
13420 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013421 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013422 </ul>
13423 </td>
13424
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013425 </tr>
13426 <tr class="entries_header">
13427 <th class="th_details" colspan="5">Details</th>
13428 </tr>
13429 <tr class="entry_cont">
13430 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013431 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013432 </td>
13433 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013434
13435
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013436 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13437 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013438
13439
13440 <tr class="entry" id="dynamic_android.statistics.faceRectangles">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013441 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013442 android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013443 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013444 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013445 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013446 <span class="entry_type_container">x</span>
13447
13448 <span class="entry_type_array">
13449 n x 4
13450 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013451 <span class="entry_type_visibility"> [hidden as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013452 <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 -080013453
13454
13455 </td> <!-- entry_type -->
13456
13457 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013458 <p>List of the bounding rectangles for detected
13459faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013460 </td>
13461
13462 <td class="entry_units">
13463 </td>
13464
13465 <td class="entry_range">
13466 </td>
13467
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013468 <td class="entry_tags">
13469 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013470 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013471 </ul>
13472 </td>
13473
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013474 </tr>
13475 <tr class="entries_header">
13476 <th class="th_details" colspan="5">Details</th>
13477 </tr>
13478 <tr class="entry_cont">
13479 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013480 <p>Only available if faceDetectMode != OFF</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013481 </td>
13482 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013483
13484
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013485 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13486 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013487
13488
13489 <tr class="entry" id="dynamic_android.statistics.faceScores">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013490 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013491 android.<wbr/>statistics.<wbr/>face<wbr/>Scores
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013492 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013493 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013494 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013495 <span class="entry_type_container">x</span>
13496
13497 <span class="entry_type_array">
13498 n
13499 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013500 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013501
13502
13503 </td> <!-- entry_type -->
13504
13505 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013506 <p>List of the face confidence scores for
13507detected faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013508 </td>
13509
13510 <td class="entry_units">
13511 </td>
13512
13513 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013514 <p>1-100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013515 </td>
13516
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013517 <td class="entry_tags">
13518 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013519 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013520 </ul>
13521 </td>
13522
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013523 </tr>
13524 <tr class="entries_header">
13525 <th class="th_details" colspan="5">Details</th>
13526 </tr>
13527 <tr class="entry_cont">
13528 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013529 <p>Only available if faceDetectMode != OFF.<wbr/> The value should be
13530meaningful (for example,<wbr/> setting 100 at all times is illegal).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013531 </td>
13532 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013533
13534
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013535 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13536 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013537
13538
13539 <tr class="entry" id="dynamic_android.statistics.histogram">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013540 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013541 android.<wbr/>statistics.<wbr/>histogram
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013542 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013543 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013544 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013545 <span class="entry_type_container">x</span>
13546
13547 <span class="entry_type_array">
13548 n x 3
13549 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013550 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013551 <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 -080013552
13553
13554 </td> <!-- entry_type -->
13555
13556 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013557 <p>A 3-channel histogram based on the raw
13558sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013559 </td>
13560
13561 <td class="entry_units">
13562 </td>
13563
13564 <td class="entry_range">
13565 </td>
13566
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013567 <td class="entry_tags">
13568 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013569 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013570 </ul>
13571 </td>
13572
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013573 </tr>
13574 <tr class="entries_header">
13575 <th class="th_details" colspan="5">Details</th>
13576 </tr>
13577 <tr class="entry_cont">
13578 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013579 <p>The k'th bucket (0-based) covers the input range
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013580(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 -080013581(k + 1) * w /<wbr/> N ).<wbr/> If only a monochrome sharpness map is
13582supported,<wbr/> all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013583 </td>
13584 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013585
13586
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013587 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13588 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013589
13590
13591 <tr class="entry" id="dynamic_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013592 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013593 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013594 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013595 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013596 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013597
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013598 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013599
13600 <ul class="entry_type_enum">
13601 <li>
13602 <span class="entry_type_enum_name">OFF</span>
13603 </li>
13604 <li>
13605 <span class="entry_type_enum_name">ON</span>
13606 </li>
13607 </ul>
13608
13609 </td> <!-- entry_type -->
13610
13611 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013612 <p>Operating mode for histogram
13613generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013614 </td>
13615
13616 <td class="entry_units">
13617 </td>
13618
13619 <td class="entry_range">
13620 </td>
13621
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013622 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013623 <ul class="entry_tags">
13624 <li><a href="#tag_V1">V1</a></li>
13625 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013626 </td>
13627
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013628 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013629
13630
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013631 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13632 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013633
13634
13635 <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013636 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013637 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013638 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013639 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013640 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013641 <span class="entry_type_container">x</span>
13642
13643 <span class="entry_type_array">
13644 n x m x 3
13645 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013646 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013647 <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 -080013648
13649
13650 </td> <!-- entry_type -->
13651
13652 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013653 <p>A 3-channel sharpness map,<wbr/> based on the raw
13654sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013655 </td>
13656
13657 <td class="entry_units">
13658 </td>
13659
13660 <td class="entry_range">
13661 </td>
13662
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013663 <td class="entry_tags">
13664 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013665 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013666 </ul>
13667 </td>
13668
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013669 </tr>
13670 <tr class="entries_header">
13671 <th class="th_details" colspan="5">Details</th>
13672 </tr>
13673 <tr class="entry_cont">
13674 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013675 <p>If only a monochrome sharpness map is supported,<wbr/>
13676all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013677 </td>
13678 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013679
13680
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013681 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13682 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013683
13684
13685 <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013686 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013687 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013688 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013689 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013690 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013691
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013692 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013693
13694 <ul class="entry_type_enum">
13695 <li>
13696 <span class="entry_type_enum_name">OFF</span>
13697 </li>
13698 <li>
13699 <span class="entry_type_enum_name">ON</span>
13700 </li>
13701 </ul>
13702
13703 </td> <!-- entry_type -->
13704
13705 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013706 <p>Operating mode for sharpness map
13707generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013708 </td>
13709
13710 <td class="entry_units">
13711 </td>
13712
13713 <td class="entry_range">
13714 </td>
13715
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013716 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013717 <ul class="entry_tags">
13718 <li><a href="#tag_V1">V1</a></li>
13719 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013720 </td>
13721
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013722 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013723
13724
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013725 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13726 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013727
Zhijun He69fc0ea2013-07-17 09:42:58 -070013728
13729 <tr class="entry" id="dynamic_android.statistics.lensShadingMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013730 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013731 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013732 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013733 <td class="entry_type">
13734 <span class="entry_type_name">float</span>
13735 <span class="entry_type_container">x</span>
13736
13737 <span class="entry_type_array">
13738 4 x n x m
13739 </span>
13740 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013741 <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 -070013742
13743
13744 </td> <!-- entry_type -->
13745
13746 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013747 <p>The shading map is a low-resolution floating-point map
13748that lists the coefficients used to correct for vignetting,<wbr/> for each
13749Bayer color channel.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013750 </td>
13751
13752 <td class="entry_units">
13753 </td>
13754
13755 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013756 <p>Each gain factor is &gt;= 1</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013757 </td>
13758
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013759 <td class="entry_tags">
13760 </td>
13761
13762 </tr>
13763 <tr class="entries_header">
13764 <th class="th_details" colspan="5">Details</th>
13765 </tr>
13766 <tr class="entry_cont">
13767 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013768 <p>The least shaded section of the image should have a gain factor
13769of 1; all other sections should have gains above 1.<wbr/></p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013770<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 -080013771must take into account the colorCorrection settings.<wbr/></p>
13772<p>The shading map is for the entire active pixel array,<wbr/> and is not
13773affected by the crop region specified in the request.<wbr/> Each shading map
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013774entry is the value of the shading compensation map over a specific
Igor Murashkin0b080452013-12-27 15:30:25 -080013775pixel on the sensor.<wbr/> Specifically,<wbr/> with a (N x M) resolution shading
13776map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
13777(x,<wbr/>y) ϵ (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
13778pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
13779The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
13780<p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
13781channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
13782The shading map is stored in a fully interleaved format,<wbr/> and its size
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013783is 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 -080013784<p>The shading map should have on the order of 30-40 rows and columns,<wbr/>
13785and must be smaller than 64x64.<wbr/></p>
13786<p>As an example,<wbr/> given a very small map defined as:</p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013787<pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]
13788<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> =
Igor Murashkin0b080452013-12-27 15:30:25 -080013789[ 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/>
13790 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/>
13791 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/>
13792 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/>
13793 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/>
13794 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 -080013795</code></pre>
13796<p>The low-resolution scaling map images for each channel are
13797(displayed using nearest-neighbor interpolation):</p>
13798<p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
13799<img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
13800<img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
13801<img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013802<p>As a visualization only,<wbr/> inverting the full-color map to recover an
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013803image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013804<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 -070013805 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013806 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013807
13808
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013809 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13810 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013811
13812
13813 <tr class="entry" id="dynamic_android.statistics.predictedColorGains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013814 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013815 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013816 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013817 <td class="entry_type">
13818 <span class="entry_type_name">float</span>
13819 <span class="entry_type_container">x</span>
13820
13821 <span class="entry_type_array">
13822 4
13823 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013824 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013825 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013826
13827
13828 </td> <!-- entry_type -->
13829
13830 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013831 <p>The best-fit color channel gains calculated
13832by the HAL's statistics units for the current output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013833 </td>
13834
13835 <td class="entry_units">
13836 </td>
13837
13838 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013839 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013840 </td>
13841
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013842 <td class="entry_tags">
13843 </td>
13844
13845 </tr>
13846 <tr class="entries_header">
13847 <th class="th_details" colspan="5">Details</th>
13848 </tr>
13849 <tr class="entry_cont">
13850 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013851 <p>This may be different than the gains used for this frame,<wbr/>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013852since statistics processing on data from a new frame
13853typically completes after the transform has already been
Igor Murashkin0b080452013-12-27 15:30:25 -080013854applied to that frame.<wbr/></p>
13855<p>The 4 channel gains are defined in Bayer domain,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013856see <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 -080013857<p>This value should always be calculated by the AWB block,<wbr/>
13858regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013859 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013860 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013861
13862
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013863 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13864 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013865
13866
13867 <tr class="entry" id="dynamic_android.statistics.predictedColorTransform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013868 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013869 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013870 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013871 <td class="entry_type">
13872 <span class="entry_type_name">rational</span>
13873 <span class="entry_type_container">x</span>
13874
13875 <span class="entry_type_array">
13876 3 x 3
13877 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013878 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013879 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013880
13881
13882 </td> <!-- entry_type -->
13883
13884 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013885 <p>The best-fit color transform matrix estimate
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013886calculated by the HAL's statistics units for the current
Igor Murashkin0b080452013-12-27 15:30:25 -080013887output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013888 </td>
13889
13890 <td class="entry_units">
13891 </td>
13892
13893 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013894 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013895 </td>
13896
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013897 <td class="entry_tags">
13898 </td>
13899
13900 </tr>
13901 <tr class="entries_header">
13902 <th class="th_details" colspan="5">Details</th>
13903 </tr>
13904 <tr class="entry_cont">
13905 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013906 <p>The HAL must provide the estimate from its
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013907statistics unit on the white balance transforms to use
Igor Murashkin0b080452013-12-27 15:30:25 -080013908for the next frame.<wbr/> These are the values the HAL believes
13909are the best fit for the current output frame.<wbr/> This may
13910be different than the transform used for this frame,<wbr/> since
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013911statistics processing on data from a new frame typically
13912completes after the transform has already been applied to
Igor Murashkin0b080452013-12-27 15:30:25 -080013913that frame.<wbr/></p>
13914<p>These estimates must be provided for all frames,<wbr/> even if
13915capture settings and color transforms are set by the application.<wbr/></p>
13916<p>This value should always be calculated by the AWB block,<wbr/>
13917regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013918 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013919 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013920
13921
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013922 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13923 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013924
13925
13926 <tr class="entry" id="dynamic_android.statistics.sceneFlicker">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013927 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013928 android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013929 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013930 <td class="entry_type">
13931 <span class="entry_type_name entry_type_name_enum">byte</span>
13932
13933 <span class="entry_type_visibility"> [public]</span>
13934
13935 <ul class="entry_type_enum">
13936 <li>
13937 <span class="entry_type_enum_name">NONE</span>
13938 </li>
13939 <li>
13940 <span class="entry_type_enum_name">50HZ</span>
13941 </li>
13942 <li>
13943 <span class="entry_type_enum_name">60HZ</span>
13944 </li>
13945 </ul>
13946
13947 </td> <!-- entry_type -->
13948
13949 <td class="entry_description">
Zhijun Heb8512c52014-02-03 11:46:58 -080013950 <p>The camera device estimated scene illumination lighting
13951frequency.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013952 </td>
13953
13954 <td class="entry_units">
13955 </td>
13956
13957 <td class="entry_range">
13958 </td>
13959
Zhijun He69fc0ea2013-07-17 09:42:58 -070013960 <td class="entry_tags">
13961 </td>
13962
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013963 </tr>
13964 <tr class="entries_header">
13965 <th class="th_details" colspan="5">Details</th>
13966 </tr>
13967 <tr class="entry_cont">
13968 <td class="entry_details" colspan="5">
Zhijun Heb8512c52014-02-03 11:46:58 -080013969 <p>Many light sources,<wbr/> such as most fluorescent lights,<wbr/> flicker at a rate
13970that depends on the local utility power standards.<wbr/> This flicker must be
13971accounted for by auto-exposure routines to avoid artifacts in captured images.<wbr/>
13972The camera device uses this entry to tell the application what the scene
13973illuminant frequency is.<wbr/></p>
13974<p>When manual exposure control is enabled
13975(<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/>
13976the <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> doesn't do the antibanding,<wbr/> and the
13977application can ensure it selects exposure times that do not cause banding
13978issues by looking into this metadata field.<wbr/> See android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
13979for more details.<wbr/></p>
13980<p>Report NONE if there doesn't appear to be flickering illumination.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013981 </td>
13982 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013983
13984
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013985 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13986 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013987
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013988
13989
13990 <!-- end of kind -->
13991 </tbody>
13992
13993 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013994 <tr><td colspan="6" id="section_tonemap" class="section">tonemap</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013995
13996
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013997 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013998
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013999 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014000 <tr>
14001 <th class="th_name">Property Name</th>
14002 <th class="th_type">Type</th>
14003 <th class="th_description">Description</th>
14004 <th class="th_units">Units</th>
14005 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014006 <th class="th_tags">Tags</th>
14007 </tr>
14008 </thead>
14009
14010 <tbody>
14011
14012
14013
14014
14015
14016
14017
14018
14019
14020
14021 <tr class="entry" id="controls_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014022 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014023 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014024 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014025 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014026 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014027 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014028
Zhijun He704d1282013-08-19 15:26:33 -070014029 <span class="entry_type_array">
14030 n x 2
14031 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014032 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014033 <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 -080014034
14035
14036 </td> <!-- entry_type -->
14037
14038 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014039 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
14040channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14041CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014042 </td>
14043
14044 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014045 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014046 </td>
14047
14048 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014049 <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 -080014050 </td>
14051
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014052 <td class="entry_tags">
14053 </td>
14054
14055 </tr>
14056 <tr class="entries_header">
14057 <th class="th_details" colspan="5">Details</th>
14058 </tr>
14059 <tr class="entry_cont">
14060 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014061 <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 -080014062 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014063 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014064
14065
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014066 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14067 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014068
14069
14070 <tr class="entry" id="controls_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014071 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014072 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014073 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014074 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014075 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014076 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014077
Zhijun He704d1282013-08-19 15:26:33 -070014078 <span class="entry_type_array">
14079 n x 2
14080 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014081 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014082 <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 -080014083
14084
14085 </td> <!-- entry_type -->
14086
14087 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014088 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14089channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14090CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014091 </td>
14092
14093 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014094 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014095 </td>
14096
14097 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014098 <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 -080014099 </td>
14100
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014101 <td class="entry_tags">
14102 </td>
14103
14104 </tr>
14105 <tr class="entries_header">
14106 <th class="th_details" colspan="5">Details</th>
14107 </tr>
14108 <tr class="entry_cont">
14109 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014110 <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 -080014111 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014112 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014113
14114
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014115 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14116 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014117
14118
14119 <tr class="entry" id="controls_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014120 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014121 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014122 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014123 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014124 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014125 <span class="entry_type_container">x</span>
14126
14127 <span class="entry_type_array">
14128 n x 2
14129 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014130 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014131 <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 -080014132
14133
14134 </td> <!-- entry_type -->
14135
14136 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014137 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14138channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14139CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014140 </td>
14141
14142 <td class="entry_units">
14143 </td>
14144
14145 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014146 <p>0-1 on both input and output coordinates,<wbr/> normalized
14147as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014148 </td>
14149
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014150 <td class="entry_tags">
14151 <ul class="entry_tags">
14152 <li><a href="#tag_DNG">DNG</a></li>
14153 </ul>
14154 </td>
14155
14156 </tr>
14157 <tr class="entries_header">
14158 <th class="th_details" colspan="5">Details</th>
14159 </tr>
14160 <tr class="entry_cont">
14161 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014162 <p>Each channel's curve is defined by an array of control points:</p>
14163<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14164 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
141652 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14166<p>These are sorted in order of increasing <code>Pin</code>; it is always
14167guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14168define a complete mapping.<wbr/> For input values between control points,<wbr/>
14169the camera device must linearly interpolate between the control
14170points.<wbr/></p>
14171<p>Each curve can have an independent number of points,<wbr/> and the number
14172of points can be less than max (that is,<wbr/> the request doesn't have to
14173always provide a curve with number of points equivalent to
14174<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14175<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14176only specify the red channel and the precision is limited to 4
14177digits,<wbr/> for conciseness.<wbr/></p>
14178<p>Linear mapping:</p>
14179<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 ]
14180</code></pre>
14181<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14182<p>Invert mapping:</p>
14183<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 ]
14184</code></pre>
14185<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14186<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14187<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14188 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/>
14189 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/>
14190 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/>
14191 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 ]
14192</code></pre>
14193<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14194<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14195<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14196 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/>
14197 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/>
14198 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/>
14199 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 ]
14200</code></pre>
14201<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014202 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014203 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014204
Igor Murashkin94e06c42014-01-13 16:51:17 -080014205 <tr class="entries_header">
14206 <th class="th_details" colspan="5">HAL Implementation Details</th>
14207 </tr>
14208 <tr class="entry_cont">
14209 <td class="entry_details" colspan="5">
14210 <p>For good quality of mapping,<wbr/> at least 128 control points are
14211preferred.<wbr/></p>
14212<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14213control points used as are available.<wbr/></p>
14214 </td>
14215 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014216
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014217 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14218 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014219
14220
14221 <tr class="entry" id="controls_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014222 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014223 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014224 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014225 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014226 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014227
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014228 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014229
14230 <ul class="entry_type_enum">
14231 <li>
14232 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014233 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014234android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14235<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14236for applying the tonemapping curve specified by
14237<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
14238<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14239<p>Must not slow down frame rate relative to raw
14240sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014241 </li>
14242 <li>
14243 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014244 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14245<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014246 </li>
14247 <li>
14248 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014249 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14250<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014251 </li>
14252 </ul>
14253
14254 </td> <!-- entry_type -->
14255
14256 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014257 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014258 </td>
14259
14260 <td class="entry_units">
14261 </td>
14262
14263 <td class="entry_range">
14264 </td>
14265
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014266 <td class="entry_tags">
14267 </td>
14268
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014269 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014270 <tr class="entries_header">
14271 <th class="th_details" colspan="5">Details</th>
14272 </tr>
14273 <tr class="entry_cont">
14274 <td class="entry_details" colspan="5">
14275 <p>When switching to an application-defined contrast curve by setting
14276<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14277per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14278mapping from input high-bit-depth pixel value to the output
14279low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14280and output may change depending on the camera pipeline,<wbr/> the values
14281are specified by normalized floating-point numbers.<wbr/></p>
14282<p>More-complex color mapping operations such as 3D color look-up
14283tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14284transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14285CONTRAST_<wbr/>CURVE.<wbr/></p>
14286<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14287emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14288<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/>
14289These values are always available,<wbr/> and as close as possible to the
14290actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14291<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14292provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14293roughly the same.<wbr/></p>
14294 </td>
14295 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014296
14297
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014298 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14299 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014300
14301
14302
14303 <!-- end of kind -->
14304 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014305 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014306
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014307 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014308 <tr>
14309 <th class="th_name">Property Name</th>
14310 <th class="th_type">Type</th>
14311 <th class="th_description">Description</th>
14312 <th class="th_units">Units</th>
14313 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014314 <th class="th_tags">Tags</th>
14315 </tr>
14316 </thead>
14317
14318 <tbody>
14319
14320
14321
14322
14323
14324
14325
14326
14327
14328
14329 <tr class="entry" id="static_android.tonemap.maxCurvePoints">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014330 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014331 android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014332 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014333 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014334 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014335
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014336 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014337
14338
14339 </td> <!-- entry_type -->
14340
14341 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014342 <p>Maximum number of supported points in the
Igor Murashkin94e06c42014-01-13 16:51:17 -080014343tonemap curve that can be used for <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/> or
14344<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 -080014345 </td>
14346
14347 <td class="entry_units">
14348 </td>
14349
14350 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014351 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014352 </td>
14353
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014354 <td class="entry_tags">
14355 </td>
14356
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014357 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014358 <tr class="entries_header">
14359 <th class="th_details" colspan="5">Details</th>
14360 </tr>
14361 <tr class="entry_cont">
14362 <td class="entry_details" colspan="5">
14363 <p>If the actual number of points provided by the application (in
14364android.<wbr/>tonemap.<wbr/>curve*) is less than max,<wbr/> the camera device will
14365resample the curve to its internal representation,<wbr/> using linear
14366interpolation.<wbr/></p>
14367<p>The output curves in the result metadata may have a different number
14368of points than the input curves,<wbr/> and will represent the actual
14369hardware curves used as closely as possible when linearly interpolated.<wbr/></p>
14370 </td>
14371 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014372
Igor Murashkin94e06c42014-01-13 16:51:17 -080014373 <tr class="entries_header">
14374 <th class="th_details" colspan="5">HAL Implementation Details</th>
14375 </tr>
14376 <tr class="entry_cont">
14377 <td class="entry_details" colspan="5">
14378 <p>This value must be at least 64.<wbr/> This should be at least 128.<wbr/></p>
14379 </td>
14380 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014381
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014382 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14383 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014384
14385
14386
14387 <!-- end of kind -->
14388 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014389 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014390
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014391 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014392 <tr>
14393 <th class="th_name">Property Name</th>
14394 <th class="th_type">Type</th>
14395 <th class="th_description">Description</th>
14396 <th class="th_units">Units</th>
14397 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014398 <th class="th_tags">Tags</th>
14399 </tr>
14400 </thead>
14401
14402 <tbody>
14403
14404
14405
14406
14407
14408
14409
14410
14411
14412
14413 <tr class="entry" id="dynamic_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014414 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014415 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014416 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014417 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014418 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014419 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014420
Zhijun He704d1282013-08-19 15:26:33 -070014421 <span class="entry_type_array">
14422 n x 2
14423 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014424 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014425 <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 -080014426
14427
14428 </td> <!-- entry_type -->
14429
14430 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014431 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
14432channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14433CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014434 </td>
14435
14436 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014437 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014438 </td>
14439
14440 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014441 <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 -080014442 </td>
14443
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014444 <td class="entry_tags">
14445 </td>
14446
14447 </tr>
14448 <tr class="entries_header">
14449 <th class="th_details" colspan="5">Details</th>
14450 </tr>
14451 <tr class="entry_cont">
14452 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014453 <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 -080014454 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014455 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014456
14457
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014458 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14459 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014460
14461
14462 <tr class="entry" id="dynamic_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014463 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014464 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014465 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014466 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014467 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014468 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014469
Zhijun He704d1282013-08-19 15:26:33 -070014470 <span class="entry_type_array">
14471 n x 2
14472 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014473 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014474 <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 -080014475
14476
14477 </td> <!-- entry_type -->
14478
14479 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014480 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14481channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14482CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014483 </td>
14484
14485 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014486 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014487 </td>
14488
14489 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014490 <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 -080014491 </td>
14492
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014493 <td class="entry_tags">
14494 </td>
14495
14496 </tr>
14497 <tr class="entries_header">
14498 <th class="th_details" colspan="5">Details</th>
14499 </tr>
14500 <tr class="entry_cont">
14501 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014502 <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 -080014503 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014504 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014505
14506
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014507 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14508 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014509
14510
14511 <tr class="entry" id="dynamic_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014512 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014513 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014514 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014515 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014516 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014517 <span class="entry_type_container">x</span>
14518
14519 <span class="entry_type_array">
14520 n x 2
14521 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014522 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014523 <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 -080014524
14525
14526 </td> <!-- entry_type -->
14527
14528 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014529 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14530channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14531CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014532 </td>
14533
14534 <td class="entry_units">
14535 </td>
14536
14537 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014538 <p>0-1 on both input and output coordinates,<wbr/> normalized
14539as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014540 </td>
14541
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014542 <td class="entry_tags">
14543 <ul class="entry_tags">
14544 <li><a href="#tag_DNG">DNG</a></li>
14545 </ul>
14546 </td>
14547
14548 </tr>
14549 <tr class="entries_header">
14550 <th class="th_details" colspan="5">Details</th>
14551 </tr>
14552 <tr class="entry_cont">
14553 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014554 <p>Each channel's curve is defined by an array of control points:</p>
14555<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14556 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
145572 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14558<p>These are sorted in order of increasing <code>Pin</code>; it is always
14559guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14560define a complete mapping.<wbr/> For input values between control points,<wbr/>
14561the camera device must linearly interpolate between the control
14562points.<wbr/></p>
14563<p>Each curve can have an independent number of points,<wbr/> and the number
14564of points can be less than max (that is,<wbr/> the request doesn't have to
14565always provide a curve with number of points equivalent to
14566<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14567<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14568only specify the red channel and the precision is limited to 4
14569digits,<wbr/> for conciseness.<wbr/></p>
14570<p>Linear mapping:</p>
14571<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 ]
14572</code></pre>
14573<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14574<p>Invert mapping:</p>
14575<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 ]
14576</code></pre>
14577<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14578<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14579<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14580 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/>
14581 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/>
14582 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/>
14583 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 ]
14584</code></pre>
14585<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14586<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14587<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14588 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/>
14589 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/>
14590 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/>
14591 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 ]
14592</code></pre>
14593<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014594 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014595 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014596
Igor Murashkin94e06c42014-01-13 16:51:17 -080014597 <tr class="entries_header">
14598 <th class="th_details" colspan="5">HAL Implementation Details</th>
14599 </tr>
14600 <tr class="entry_cont">
14601 <td class="entry_details" colspan="5">
14602 <p>For good quality of mapping,<wbr/> at least 128 control points are
14603preferred.<wbr/></p>
14604<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14605control points used as are available.<wbr/></p>
14606 </td>
14607 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014608
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014609 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14610 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014611
14612
14613 <tr class="entry" id="dynamic_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014614 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014615 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014616 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014617 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014618 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014619
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014620 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014621
14622 <ul class="entry_type_enum">
14623 <li>
14624 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014625 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014626android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14627<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14628for applying the tonemapping curve specified by
14629<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
14630<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14631<p>Must not slow down frame rate relative to raw
14632sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014633 </li>
14634 <li>
14635 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014636 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14637<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014638 </li>
14639 <li>
14640 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014641 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14642<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014643 </li>
14644 </ul>
14645
14646 </td> <!-- entry_type -->
14647
14648 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014649 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014650 </td>
14651
14652 <td class="entry_units">
14653 </td>
14654
14655 <td class="entry_range">
14656 </td>
14657
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014658 <td class="entry_tags">
14659 </td>
14660
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014661 </tr>
Igor Murashkin595f45b2014-01-17 17:27:15 -080014662 <tr class="entries_header">
14663 <th class="th_details" colspan="5">Details</th>
14664 </tr>
14665 <tr class="entry_cont">
14666 <td class="entry_details" colspan="5">
14667 <p>When switching to an application-defined contrast curve by setting
14668<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14669per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14670mapping from input high-bit-depth pixel value to the output
14671low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14672and output may change depending on the camera pipeline,<wbr/> the values
14673are specified by normalized floating-point numbers.<wbr/></p>
14674<p>More-complex color mapping operations such as 3D color look-up
14675tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14676transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14677CONTRAST_<wbr/>CURVE.<wbr/></p>
14678<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14679emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14680<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/>
14681These values are always available,<wbr/> and as close as possible to the
14682actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14683<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14684provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14685roughly the same.<wbr/></p>
14686 </td>
14687 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014688
14689
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014690 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14691 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014692
14693
14694
14695 <!-- end of kind -->
14696 </tbody>
14697
14698 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014699 <tr><td colspan="6" id="section_led" class="section">led</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014700
14701
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014702 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014703
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014704 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014705 <tr>
14706 <th class="th_name">Property Name</th>
14707 <th class="th_type">Type</th>
14708 <th class="th_description">Description</th>
14709 <th class="th_units">Units</th>
14710 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014711 <th class="th_tags">Tags</th>
14712 </tr>
14713 </thead>
14714
14715 <tbody>
14716
14717
14718
14719
14720
14721
14722
14723
14724
14725
14726 <tr class="entry" id="controls_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014727 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014728 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014729 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014730 <td class="entry_type">
14731 <span class="entry_type_name entry_type_name_enum">byte</span>
14732
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014733 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014734
14735 <ul class="entry_type_enum">
14736 <li>
14737 <span class="entry_type_enum_name">OFF</span>
14738 </li>
14739 <li>
14740 <span class="entry_type_enum_name">ON</span>
14741 </li>
14742 </ul>
14743
14744 </td> <!-- entry_type -->
14745
14746 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014747 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014748that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014749Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014750disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014751any untrusted applications.<wbr/></p>
14752<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14753transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14754data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014755<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014756doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014757 </td>
14758
14759 <td class="entry_units">
14760 </td>
14761
14762 <td class="entry_range">
14763 </td>
14764
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014765 <td class="entry_tags">
14766 </td>
14767
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014768 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014769
14770
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014771 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14772 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014773
14774
14775
14776 <!-- end of kind -->
14777 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014778 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014779
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014780 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014781 <tr>
14782 <th class="th_name">Property Name</th>
14783 <th class="th_type">Type</th>
14784 <th class="th_description">Description</th>
14785 <th class="th_units">Units</th>
14786 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014787 <th class="th_tags">Tags</th>
14788 </tr>
14789 </thead>
14790
14791 <tbody>
14792
14793
14794
14795
14796
14797
14798
14799
14800
14801
14802 <tr class="entry" id="dynamic_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014803 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014804 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014805 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014806 <td class="entry_type">
14807 <span class="entry_type_name entry_type_name_enum">byte</span>
14808
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014809 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014810
14811 <ul class="entry_type_enum">
14812 <li>
14813 <span class="entry_type_enum_name">OFF</span>
14814 </li>
14815 <li>
14816 <span class="entry_type_enum_name">ON</span>
14817 </li>
14818 </ul>
14819
14820 </td> <!-- entry_type -->
14821
14822 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014823 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014824that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014825Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014826disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014827any untrusted applications.<wbr/></p>
14828<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14829transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14830data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014831<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014832doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014833 </td>
14834
14835 <td class="entry_units">
14836 </td>
14837
14838 <td class="entry_range">
14839 </td>
14840
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014841 <td class="entry_tags">
14842 </td>
14843
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014844 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014845
14846
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014847 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14848 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014849
14850
14851
14852 <!-- end of kind -->
14853 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014854 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014855
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014856 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014857 <tr>
14858 <th class="th_name">Property Name</th>
14859 <th class="th_type">Type</th>
14860 <th class="th_description">Description</th>
14861 <th class="th_units">Units</th>
14862 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014863 <th class="th_tags">Tags</th>
14864 </tr>
14865 </thead>
14866
14867 <tbody>
14868
14869
14870
14871
14872
14873
14874
14875
14876
14877
14878 <tr class="entry" id="static_android.led.availableLeds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014879 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014880 android.<wbr/>led.<wbr/>available<wbr/>Leds
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014881 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014882 <td class="entry_type">
14883 <span class="entry_type_name entry_type_name_enum">byte</span>
14884 <span class="entry_type_container">x</span>
14885
14886 <span class="entry_type_array">
14887 n
14888 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014889 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014890
14891 <ul class="entry_type_enum">
14892 <li>
14893 <span class="entry_type_enum_name">TRANSMIT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014894 <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 -070014895 </li>
14896 </ul>
14897
14898 </td> <!-- entry_type -->
14899
14900 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014901 <p>A list of camera LEDs that are available on this system.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014902 </td>
14903
14904 <td class="entry_units">
14905 </td>
14906
14907 <td class="entry_range">
14908 </td>
14909
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014910 <td class="entry_tags">
14911 </td>
14912
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014913 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014914
14915
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014916 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14917 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014918
14919
14920
14921 <!-- end of kind -->
14922 </tbody>
14923
14924 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014925 <tr><td colspan="6" id="section_info" class="section">info</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014926
14927
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014928 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014929
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014930 <thead class="entries_header">
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014931 <tr>
14932 <th class="th_name">Property Name</th>
14933 <th class="th_type">Type</th>
14934 <th class="th_description">Description</th>
14935 <th class="th_units">Units</th>
14936 <th class="th_range">Range</th>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014937 <th class="th_tags">Tags</th>
14938 </tr>
14939 </thead>
14940
14941 <tbody>
14942
14943
14944
14945
14946
14947
14948
14949
14950
14951
14952 <tr class="entry" id="static_android.info.supportedHardwareLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014953 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014954 android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014955 </td>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014956 <td class="entry_type">
14957 <span class="entry_type_name entry_type_name_enum">byte</span>
14958
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014959 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014960
14961 <ul class="entry_type_enum">
14962 <li>
14963 <span class="entry_type_enum_name">LIMITED</span>
14964 </li>
14965 <li>
14966 <span class="entry_type_enum_name">FULL</span>
14967 </li>
14968 </ul>
14969
14970 </td> <!-- entry_type -->
14971
14972 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014973 <p>The camera 3 HAL device can implement one of two possible
14974operational modes; limited and full.<wbr/> Full support is
14975expected from new higher-end devices.<wbr/> Limited mode has
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014976hardware requirements roughly in line with those for a
Igor Murashkin0b080452013-12-27 15:30:25 -080014977camera HAL device v1 implementation,<wbr/> and is expected from
14978older or inexpensive devices.<wbr/> Full is a strict superset of
14979limited,<wbr/> and they share the same essential operational flow.<wbr/></p>
14980<p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014981 </td>
14982
14983 <td class="entry_units">
14984 </td>
14985
14986 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014987 <p>Optional.<wbr/> Default value is LIMITED.<wbr/></p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014988 </td>
14989
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014990 <td class="entry_tags">
14991 </td>
14992
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014993 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014994
14995
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014996 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14997 <!-- end of entry -->
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014998
14999
15000
15001 <!-- end of kind -->
15002 </tbody>
15003
15004 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015005 <tr><td colspan="6" id="section_blackLevel" class="section">blackLevel</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015006
15007
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015008 <tr><td colspan="6" class="kind">controls</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015009
15010 <thead class="entries_header">
15011 <tr>
15012 <th class="th_name">Property Name</th>
15013 <th class="th_type">Type</th>
15014 <th class="th_description">Description</th>
15015 <th class="th_units">Units</th>
15016 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015017 <th class="th_tags">Tags</th>
15018 </tr>
15019 </thead>
15020
15021 <tbody>
15022
15023
15024
15025
15026
15027
15028
15029
15030
15031
15032 <tr class="entry" id="controls_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015033 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015034 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015035 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015036 <td class="entry_type">
15037 <span class="entry_type_name entry_type_name_enum">byte</span>
15038
Igor Murashkinb8dc8812013-07-17 16:29:34 -070015039 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015040
15041 <ul class="entry_type_enum">
15042 <li>
15043 <span class="entry_type_enum_name">OFF</span>
15044 </li>
15045 <li>
15046 <span class="entry_type_enum_name">ON</span>
15047 </li>
15048 </ul>
15049
15050 </td> <!-- entry_type -->
15051
15052 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015053 <p>Whether black-level compensation is locked
15054to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015055 </td>
15056
15057 <td class="entry_units">
15058 </td>
15059
15060 <td class="entry_range">
15061 </td>
15062
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015063 <td class="entry_tags">
15064 <ul class="entry_tags">
15065 <li><a href="#tag_HAL2">HAL2</a></li>
15066 </ul>
15067 </td>
15068
15069 </tr>
15070 <tr class="entries_header">
15071 <th class="th_details" colspan="5">Details</th>
15072 </tr>
15073 <tr class="entry_cont">
15074 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015075 <p>When set to ON,<wbr/> the values used for black-level
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015076compensation will not change until the lock is set to
Igor Murashkin0b080452013-12-27 15:30:25 -080015077OFF.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015078<p>Since changes to certain capture parameters (such as
15079exposure time) may require resetting of black level
Igor Murashkin0b080452013-12-27 15:30:25 -080015080compensation,<wbr/> the camera device must report whether setting
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015081the black level lock was successful in the output result
Igor Murashkin0b080452013-12-27 15:30:25 -080015082metadata.<wbr/></p>
15083<p>For example,<wbr/> if a sequence of requests is as follows:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015084<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015085<li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
15086<li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15087<li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15088<li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15089<li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15090<li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015091</ul>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015092<p>And the exposure change in Request 4 requires the camera
Igor Murashkin0b080452013-12-27 15:30:25 -080015093device to reset the black level offsets,<wbr/> then the output
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015094result metadata is expected to be:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015095<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015096<li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
15097<li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15098<li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15099<li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li>
15100<li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15101<li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015102</ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015103<p>This indicates to the application that on frame 4,<wbr/> black
15104levels were reset due to exposure value changes,<wbr/> and pixel
15105values may not be consistent across captures.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015106<p>The camera device will maintain the lock to the extent
Igor Murashkin0b080452013-12-27 15:30:25 -080015107possible,<wbr/> only overriding the lock to OFF when changes to
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015108other request parameters require a black level recalculation
Igor Murashkin0b080452013-12-27 15:30:25 -080015109or reset.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015110 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015111 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015112
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015113 <tr class="entries_header">
15114 <th class="th_details" colspan="5">HAL Implementation Details</th>
15115 </tr>
15116 <tr class="entry_cont">
15117 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015118 <p>If for some reason black level locking is no longer possible
15119(for example,<wbr/> the analog gain has changed,<wbr/> which forces
15120black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015121override this request (and it must report 'OFF' when this
15122does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080015123possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015124 </td>
15125 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015126
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015127 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15128 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070015129
15130
15131
15132 <!-- end of kind -->
15133 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015134 <tr><td colspan="6" class="kind">dynamic</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015135
15136 <thead class="entries_header">
15137 <tr>
15138 <th class="th_name">Property Name</th>
15139 <th class="th_type">Type</th>
15140 <th class="th_description">Description</th>
15141 <th class="th_units">Units</th>
15142 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015143 <th class="th_tags">Tags</th>
15144 </tr>
15145 </thead>
15146
15147 <tbody>
15148
15149
15150
15151
15152
15153
15154
15155
15156
15157
15158 <tr class="entry" id="dynamic_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015159 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015160 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015161 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015162 <td class="entry_type">
15163 <span class="entry_type_name entry_type_name_enum">byte</span>
15164
Igor Murashkinb8dc8812013-07-17 16:29:34 -070015165 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015166
15167 <ul class="entry_type_enum">
15168 <li>
15169 <span class="entry_type_enum_name">OFF</span>
15170 </li>
15171 <li>
15172 <span class="entry_type_enum_name">ON</span>
15173 </li>
15174 </ul>
15175
15176 </td> <!-- entry_type -->
15177
15178 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015179 <p>Whether black-level compensation is locked
15180to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015181 </td>
15182
15183 <td class="entry_units">
15184 </td>
15185
15186 <td class="entry_range">
15187 </td>
15188
Zhijun He69fc0ea2013-07-17 09:42:58 -070015189 <td class="entry_tags">
15190 <ul class="entry_tags">
15191 <li><a href="#tag_HAL2">HAL2</a></li>
15192 </ul>
15193 </td>
15194
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015195 </tr>
15196 <tr class="entries_header">
15197 <th class="th_details" colspan="5">Details</th>
15198 </tr>
15199 <tr class="entry_cont">
15200 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015201 <p>Whether the black level offset was locked for this frame.<wbr/> Should be
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080015202ON 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 -080015203a change in other capture settings forced the camera device to
Igor Murashkin0b080452013-12-27 15:30:25 -080015204perform a black level reset.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015205 </td>
15206 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015207
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015208 <tr class="entries_header">
15209 <th class="th_details" colspan="5">HAL Implementation Details</th>
15210 </tr>
15211 <tr class="entry_cont">
15212 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015213 <p>If for some reason black level locking is no longer possible
15214(for example,<wbr/> the analog gain has changed,<wbr/> which forces
15215black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015216override this request (and it must report 'OFF' when this
15217does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080015218possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015219 </td>
15220 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015221
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015222 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15223 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070015224
15225
15226
15227 <!-- end of kind -->
15228 </tbody>
15229
15230 <!-- end of section -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015231 <tr><td colspan="6" id="section_sync" class="section">sync</td></tr>
15232
15233
15234 <tr><td colspan="6" class="kind">dynamic</td></tr>
15235
15236 <thead class="entries_header">
15237 <tr>
15238 <th class="th_name">Property Name</th>
15239 <th class="th_type">Type</th>
15240 <th class="th_description">Description</th>
15241 <th class="th_units">Units</th>
15242 <th class="th_range">Range</th>
15243 <th class="th_tags">Tags</th>
15244 </tr>
15245 </thead>
15246
15247 <tbody>
15248
15249
15250
15251
15252
15253
15254
15255
15256
15257
15258 <tr class="entry" id="dynamic_android.sync.frameNumber">
15259 <td class="entry_name" rowspan="5">
15260 android.<wbr/>sync.<wbr/>frame<wbr/>Number
15261 </td>
15262 <td class="entry_type">
15263 <span class="entry_type_name entry_type_name_enum">int64</span>
15264
15265 <span class="entry_type_visibility"> [hidden]</span>
15266
15267 <ul class="entry_type_enum">
15268 <li>
15269 <span class="entry_type_enum_name">CONVERGING</span>
15270 <span class="entry_type_enum_value">-1</span>
15271 <span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/>
15272Synchronization is in progress,<wbr/> and reading metadata from this
15273result may include a mix of data that have taken effect since the
15274last synchronization time.<wbr/></p>
15275<p>In some future result,<wbr/> within <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> frames,<wbr/>
15276this value will update to the actual frame number frame number
15277the result is guaranteed to be synchronized to (as long as the
15278request settings remain constant).<wbr/></p></span>
15279 </li>
15280 <li>
15281 <span class="entry_type_enum_name">UNKNOWN</span>
15282 <span class="entry_type_enum_value">-2</span>
15283 <span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/> The
15284result may have already converged,<wbr/> or it may be in progress.<wbr/>
15285Reading from this result may include some mix of settings from
15286past requests.<wbr/></p>
15287<p>After a settings change,<wbr/> the new settings will eventually all
15288take effect for the output buffers and results.<wbr/> However,<wbr/> this
15289value will not change when that happens.<wbr/> Altering settings
15290rapidly may provide outcomes using mixes of settings from recent
15291requests.<wbr/></p>
15292<p>This value is intended primarily for backwards compatibility with
15293the older camera implementations (for android.<wbr/>hardware.<wbr/>Camera).<wbr/></p></span>
15294 </li>
15295 </ul>
15296
15297 </td> <!-- entry_type -->
15298
15299 <td class="entry_description">
15300 <p>The frame number corresponding to the last request
15301with which the output result (metadata + buffers) has been fully
15302synchronized.<wbr/></p>
15303 </td>
15304
15305 <td class="entry_units">
15306 </td>
15307
15308 <td class="entry_range">
15309 <p>Either a non-negative value corresponding to a
15310<code>frame_<wbr/>number</code>,<wbr/> or one of the two enums (CONVERGING /<wbr/> UNKNOWN).<wbr/></p>
15311 </td>
15312
15313 <td class="entry_tags">
15314 <ul class="entry_tags">
15315 <li><a href="#tag_LIMITED">LIMITED</a></li>
15316 </ul>
15317 </td>
15318
15319 </tr>
15320 <tr class="entries_header">
15321 <th class="th_details" colspan="5">Details</th>
15322 </tr>
15323 <tr class="entry_cont">
15324 <td class="entry_details" colspan="5">
15325 <p>When a request is submitted to the camera device,<wbr/> there is usually a
15326delay of several frames before the controls get applied.<wbr/> A camera
15327device may either choose to account for this delay by implementing a
15328pipeline and carefully submit well-timed atomic control updates,<wbr/> or
15329it may start streaming control changes that span over several frame
15330boundaries.<wbr/></p>
15331<p>In the latter case,<wbr/> whenever a request's settings change relative to
15332the previous submitted request,<wbr/> the full set of changes may take
15333multiple frame durations to fully take effect.<wbr/> Some settings may
15334take effect sooner (in less frame durations) than others.<wbr/></p>
15335<p>While a set of control changes are being propagated,<wbr/> this value
15336will be CONVERGING.<wbr/></p>
15337<p>Once it is fully known that a set of control changes have been
15338finished propagating,<wbr/> and the resulting updated control settings
15339have been read back by the camera device,<wbr/> this value will be set
15340to a non-negative frame number (corresponding to the request to
15341which the results have synchronized to).<wbr/></p>
15342<p>Older camera device implementations may not have a way to detect
15343when all camera controls have been applied,<wbr/> and will always set this
15344value to UNKNOWN.<wbr/></p>
15345<p>FULL capability devices will always have this value set to the
15346frame number of the request corresponding to this result.<wbr/></p>
15347<p><em>Further details</em>:</p>
15348<ul>
15349<li>Whenever a request differs from the last request,<wbr/> any future
15350results not yet returned may have this value set to CONVERGING (this
15351could include any in-progress captures not yet returned by the camera
15352device,<wbr/> for more details see pipeline considerations below).<wbr/></li>
15353<li>Submitting a series of multiple requests that differ from the
15354previous request (e.<wbr/>g.<wbr/> r1,<wbr/> r2,<wbr/> r3 s.<wbr/>t.<wbr/> r1 != r2 != r3)
15355moves the new synchronization frame to the last non-repeating
15356request (using the smallest frame number from the contiguous list of
15357repeating requests).<wbr/></li>
15358<li>Submitting the same request repeatedly will not change this value
15359to CONVERGING,<wbr/> if it was already a non-negative value.<wbr/></li>
15360<li>When this value changes to non-negative,<wbr/> that means that all of the
15361metadata controls from the request have been applied,<wbr/> all of the
15362metadata controls from the camera device have been read to the
15363updated values (into the result),<wbr/> and all of the graphics buffers
15364corresponding to this result are also synchronized to the request.<wbr/></li>
15365</ul>
15366<p><em>Pipeline considerations</em>:</p>
15367<p>Submitting a request with updated controls relative to the previously
15368submitted requests may also invalidate the synchronization state
15369of all the results corresponding to currently in-flight requests.<wbr/></p>
15370<p>In other words,<wbr/> results for this current request and up to
15371<a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> prior requests may have their
15372<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> change to CONVERGING.<wbr/></p>
15373 </td>
15374 </tr>
15375
15376 <tr class="entries_header">
15377 <th class="th_details" colspan="5">HAL Implementation Details</th>
15378 </tr>
15379 <tr class="entry_cont">
15380 <td class="entry_details" colspan="5">
15381 <p>Using UNKNOWN here is illegal unless android.<wbr/>sync.<wbr/>max<wbr/>Latency
15382is also UNKNOWN.<wbr/></p>
15383<p>FULL capability devices should simply set this value to the
15384<code>frame_<wbr/>number</code> of the request this result corresponds to.<wbr/></p>
15385 </td>
15386 </tr>
15387
15388 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15389 <!-- end of entry -->
15390
15391
15392
15393 <!-- end of kind -->
15394 </tbody>
15395 <tr><td colspan="6" class="kind">static</td></tr>
15396
15397 <thead class="entries_header">
15398 <tr>
15399 <th class="th_name">Property Name</th>
15400 <th class="th_type">Type</th>
15401 <th class="th_description">Description</th>
15402 <th class="th_units">Units</th>
15403 <th class="th_range">Range</th>
15404 <th class="th_tags">Tags</th>
15405 </tr>
15406 </thead>
15407
15408 <tbody>
15409
15410
15411
15412
15413
15414
15415
15416
15417
15418
15419 <tr class="entry" id="static_android.sync.maxLatency">
15420 <td class="entry_name" rowspan="5">
15421 android.<wbr/>sync.<wbr/>max<wbr/>Latency
15422 </td>
15423 <td class="entry_type">
15424 <span class="entry_type_name entry_type_name_enum">int32</span>
15425
15426 <span class="entry_type_visibility"> [public]</span>
15427
15428 <ul class="entry_type_enum">
15429 <li>
15430 <span class="entry_type_enum_name">PER_FRAME_CONTROL</span>
15431 <span class="entry_type_enum_value">0</span>
15432 <span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/>
15433(and furthermore for all results,<wbr/>
15434<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>
15435<p>Changing controls over multiple requests one after another will
15436produce results that have those controls applied atomically
15437each frame.<wbr/></p>
15438<p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
15439 </li>
15440 <li>
15441 <span class="entry_type_enum_name">UNKNOWN</span>
15442 <span class="entry_type_enum_value">-1</span>
15443 <span class="entry_type_enum_notes"><p>Each new frame has some subset (potentially the entire set)
15444of the past requests applied to the camera settings.<wbr/></p>
15445<p>By submitting a series of identical requests,<wbr/> the camera device
15446will eventually have the camera settings applied,<wbr/> but it is
15447unknown when that exact point will be.<wbr/></p></span>
15448 </li>
15449 </ul>
15450
15451 </td> <!-- entry_type -->
15452
15453 <td class="entry_description">
15454 <p>The maximum number of frames that can occur after a request
15455(different than the previous) has been submitted,<wbr/> and before the
15456result's state becomes synchronized (by setting
15457<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> to a non-negative value).<wbr/></p>
15458 </td>
15459
15460 <td class="entry_units">
15461 number of processed requests
15462 </td>
15463
15464 <td class="entry_range">
15465 <p>&gt;= -1</p>
15466 </td>
15467
15468 <td class="entry_tags">
15469 <ul class="entry_tags">
15470 <li><a href="#tag_LIMITED">LIMITED</a></li>
15471 </ul>
15472 </td>
15473
15474 </tr>
15475 <tr class="entries_header">
15476 <th class="th_details" colspan="5">Details</th>
15477 </tr>
15478 <tr class="entry_cont">
15479 <td class="entry_details" colspan="5">
15480 <p>This defines the maximum distance (in number of metadata results),<wbr/>
15481between <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> and the equivalent
15482<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15483<p>In other words this acts as an upper boundary for how many frames
15484must occur before the camera device knows for a fact that the new
15485submitted camera settings have been applied in outgoing frames.<wbr/></p>
15486<p>For example if the distance was 2,<wbr/></p>
15487<pre><code>initial request = X (repeating)
15488request1 = X
15489request2 = Y
15490request3 = Y
15491request4 = Y
15492
15493where requestN has frameNumber N,<wbr/> and the first of the repeating
15494initial request's has frameNumber F (and F &lt; 1).<wbr/>
15495
15496initial result = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15497result1 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15498result2 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15499result3 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15500result4 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2 }
15501
15502where resultN has frameNumber N.<wbr/>
15503</code></pre>
15504<p>Since <code>result4</code> has a <code>frameNumber == 4</code> and
15505<code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2</code>,<wbr/> the distance is clearly
15506<code>4 - 2 = 2</code>.<wbr/></p>
15507 </td>
15508 </tr>
15509
15510 <tr class="entries_header">
15511 <th class="th_details" colspan="5">HAL Implementation Details</th>
15512 </tr>
15513 <tr class="entry_cont">
15514 <td class="entry_details" colspan="5">
15515 <p>Use <code>frame_<wbr/>count</code> from camera3_<wbr/>request_<wbr/>t instead of
15516<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15517<p>LIMITED devices are strongly encouraged to use a non-negative
15518value.<wbr/> If UNKNOWN is used here then app developers do not have a way
15519to know when sensor settings have been applied.<wbr/></p>
15520 </td>
15521 </tr>
15522
15523 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15524 <!-- end of entry -->
15525
15526
15527
15528 <!-- end of kind -->
15529 </tbody>
15530
15531 <!-- end of section -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015532<!-- </namespace> -->
15533 </table>
15534
15535 <div class="tags" id="tag_index">
15536 <h2>Tags</h2>
15537 <ul>
15538 <li id="tag_AWB">AWB -
15539 Needed for auto white balance
15540
15541 <ul class="tags_entries">
15542 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15543 </ul>
15544 </li> <!-- tag_AWB -->
15545 <li id="tag_BC">BC -
15546 Needed for backwards compatibility with old Java API
15547
15548 <ul class="tags_entries">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -080015549 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015550 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
15551 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
15552 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
15553 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
15554 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015555 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015556 <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
15557 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015558 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015559 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
15560 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15561 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
15562 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
15563 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
15564 <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
15565 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
15566 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -080015567 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015568 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
15569 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
15570 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
15571 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
15572 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
15573 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
15574 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
15575 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
15576 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
15577 <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
15578 <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
15579 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
15580 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
15581 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
15582 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
15583 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
15584 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
15585 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
15586 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
15587 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15588 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15589 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a> (static)</li>
15590 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
15591 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
15592 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
15593 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
15594 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
15595 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
Igor Murashkinf11a4df2013-05-07 10:00:46 -070015596 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015597 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
15598 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
15599 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015600 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015601 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015602 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15603 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15604 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15605 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
15606 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
15607 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
15608 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
15609 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
15610 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
15611 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
15612 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
15613 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
15614 </ul>
15615 </li> <!-- tag_BC -->
15616 <li id="tag_V1">V1 -
15617 New features for first camera 2 release (API1)
15618
15619 <ul class="tags_entries">
15620 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
15621 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
15622 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
15623 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
15624 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
15625 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
15626 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
15627 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
15628 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15629 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
15630 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
15631 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
15632 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15633 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
15634 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li>
15635 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
15636 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
15637 <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li>
15638 <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
15639 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
15640 <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
15641 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
15642 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
15643 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015644 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015645 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
15646 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15647 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15648 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15649 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15650 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li>
15651 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
15652 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
15653 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
15654 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
15655 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
15656 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
15657 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
15658 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
15659 </ul>
15660 </li> <!-- tag_V1 -->
15661 <li id="tag_ADV">ADV - None
15662 <ul class="tags_entries">
15663 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
15664 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
15665 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li>
15666 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li>
15667 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li>
15668 <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
15669 </ul>
15670 </li> <!-- tag_ADV -->
15671 <li id="tag_DNG">DNG -
15672 Needed for DNG file support
15673
15674 <ul class="tags_entries">
15675 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015676 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
15677 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
15678 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15679 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
15680 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
15681 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li>
15682 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li>
15683 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li>
15684 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li>
15685 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li>
15686 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li>
15687 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15688 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li>
15689 </ul>
15690 </li> <!-- tag_DNG -->
15691 <li id="tag_EXIF">EXIF - None
15692 <ul class="tags_entries">
15693 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15694 </ul>
15695 </li> <!-- tag_EXIF -->
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015696 <li id="tag_HAL2">HAL2 -
Alex Rayef40ad62013-10-01 17:52:33 -070015697 Entry is only used by camera device HAL 2.x
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015698
15699 <ul class="tags_entries">
15700 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li>
15701 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li>
15702 <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li>
Zhijun He12744b22014-01-22 15:58:57 -080015703 <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a> (static)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015704 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015705 </ul>
15706 </li> <!-- tag_HAL2 -->
Alex Rayef40ad62013-10-01 17:52:33 -070015707 <li id="tag_FULL">FULL -
15708 Entry is required for full hardware level devices, and optional for other hardware levels
15709
15710 <ul class="tags_entries">
15711 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15712 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15713 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li>
15714 </ul>
15715 </li> <!-- tag_FULL -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015716 <li id="tag_LIMITED">LIMITED -
15717 Entry assists with LIMITED device implementation. LIMITED devices
15718 must implement all entries with this tag. Optional for FULL devices.
15719
15720 <ul class="tags_entries">
15721 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a> (dynamic)</li>
15722 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a> (static)</li>
15723 </ul>
15724 </li> <!-- tag_LIMITED -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015725 </ul>
15726 </div>
15727
15728 [ <a href="#">top</a> ]
15729
15730</body>
15731</html>